1

ListViewusingを追加しようとしていFragmentます。拡張などでできることがわかっていますListFragmentFragmentしかし、拡張してから追加したいlistView。しかし、次のコードは機能していません (エラーも表示されません)。

フラグメントクラス

public class OtherFragment extends Fragment { 

    final String[] items = new String[] { "Android", "iPhone", "WindowsMobile",
            "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
       "Linux", "OS/2" };

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)
    {       
        View view = inflater.inflate(R.layout.activity_main, container,false);
        ListView list = (ListView)view.findViewById(R.id.listView1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
        list.setAdapter(adapter);
        return view;
    }
}

フラグメントの XML ファイル

<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"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>

</RelativeLayout>

MainActivity (メイン クラス)

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        FragmentManager fm= getFragmentManager();
        if(fm.findFragmentById(R.id.fragmentContent)==null)
        {
            Log.d("add fragment", "fragment added");
            FragmentTransaction ft = fm.beginTransaction();
            ft.add(R.id.fragmentContent, new OtherFragment());
            ft.commit();
        }
    }
}

main.xml (メイン xml ファイル)

<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"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/fragmentContent"
        android:layout_width="0px"
        android:layout_height="match_parent"/>

</RelativeLayout>

修理済み:

android:layout_width="match_parent"

醜い間違い。ありがとうございます

4

3 に答える 3

0

Main Activity は、Activity だけでなく FragmentActivity を拡張する必要があります

public class MainActivity extends FragmentActivity {

そして、レイアウトは線形レイアウトではなくフラグメントである必要があります

<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"
  tools:context=".MainActivity" >

  <Fragment
    android:id="@+id/fragmentContent"
    android:layout_width="0px"
    android:layout_height="match_parent"/>

</RelativeLayout>
于 2013-03-28T19:07:06.783 に答える
0

を使用することをお勧めしますLisFragment。これにより、将来の他の問題を回避できます。リストビューで通常のフラグメントの上にフラグメントを開いた場合など、onCLick の処理でいくつかの問題に直面します

于 2014-11-18T12:06:42.037 に答える
0

修理済み:

android:layout_width="match_parent"

醜い間違い。

于 2013-03-28T19:15:31.700 に答える