0

だから私はレイアウトを理解し、レイアウトインフレータを使用しようとしてきましたが、いくつかの問題が発生しています。2つの相対xmlレイアウトファイルがあり、1つのxmlファイルには2つのtextView、editTextフィールド、およびスピナーオブジェクトがあります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/firstLayout"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

<TextView
    android:id="@+id/goalNameView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="5dip"
    android:text="@string/goalName" />

<EditText
    android:id="@+id/goal_name"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/goalNameView"
    android:hint="@string/editText"
    android:ems="10" >

    <requestFocus />
</EditText>

 <TextView
    android:id="@+id/goalTasksView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/goal_tasks"
    android:layout_alignBottom="@+id/goal_tasks"
    android:layout_alignLeft="@+id/goalNameView"
    android:text="@string/goalTasks" />

<Spinner
    android:id="@+id/goal_tasks"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/goalTasksView"
    android:layout_marginTop="51dp" />


 </RelativeLayout>

もう1つのxmlファイルには1つのtextViewと1つのeditTextフィールドがあります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tView"
 >
<EditText
    android:id="@+id/taskNameField"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/taskNameView"
    android:ems="10"
    android:hint="@string/editText" />

<TextView
    android:id="@+id/taskNameView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/taskNameField"
    android:layout_alignBottom="@+id/taskNameField"
    android:layout_alignParentLeft="true"
    android:text="@string/taskName"
     />

</RelativeLayout>

2つのレイアウトを3番目のxmlファイル(main.xml)と一緒にパッチしようとしています。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/theMain"
>

<include android:id="@id/mainLayout" layout="@layout/activity_goal_keeper"  />



</LinearLayout>

レイアウトを機能させるために探している方法は、最初のレイアウト(@ id / firstLayout)を表示し、次にそのすぐ下に2番目のレイアウト(@ id / tView)を表示することです。これを実現するには、LinearLayoutにレイアウトを実装する必要があることを読みました。これが、3番目のレイアウト(@ id / theMain)がある理由です。

ご覧のとおり、@ id / firstLayoutのincludeステートメントがありますが、メインアクティビティを介して@ id / tViewの複数のバージョンを拡張しようとしているため、@ id/tViewのincludeステートメントはありません。

 public class GoalKeeperActivity extends Activity implements       AdapterView.OnItemSelectedListener {
 public Integer[] items= {1,2,3,4,5,6,7,8};

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    //setContentView(R.layout.activity_goal_keeper);
    setContentView(R.layout.main);

    Spinner numOfTasks=(Spinner) findViewById(R.id.goal_tasks);
    numOfTasks.setOnItemSelectedListener(this);

    ArrayAdapter<Integer> aa = new ArrayAdapter<Integer>(this, android.R.layout.simple_spinner_item, items);

    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    numOfTasks.setAdapter(aa);

    ViewGroup item = (ViewGroup) findViewById(R.id.theMain);

    for(int i=0; i<3;i++)
    {
      View child = getLayoutInflater().inflate(R.layout.tasks_view, item, false);
      child.setId(i);
      item.addView(child);

    }

私の問題は、@ firstLayoutが正しく表示されるのに、@tViewがまったく表示されないことです。誰かが私が欠けているものを説明できますか?

前もって感謝します。

4

1 に答える 1

0

@id/tView xml ファイルで "android:layout_height" 属性を wrap_content に設定するだけの問題であることがわかりました。愚かな小さな間違い...

于 2012-11-03T03:56:57.210 に答える