4

私はandroidでフラグメントを操作していますが、android.app.ListFragmentを拡張してリストビューを表示していますが、リストビューで必要なアイテムは1つだけです。リストビューに2つのアイテムを表示したいのですが、ListActivityクラスを拡張することで可能ですが、fragmentとlistactivtyの両方を拡張したいと思います。
この画像を参照してください

public class ListFragmentnewforel extends android.app.ListFragment {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

  }

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    ArrayList<HashMap<String, String>> list = buildData();
    String[] from = {  "purpose" , "name","desc", "num"};
    int[] to = { R.id.detailsText1, R.id.detailsText2, R.id.detailsText3,  };

    SimpleAdapter adapter = new SimpleAdapter(this, list,R.layout.mylistview,from,to);
    setListAdapter(adapter);
  }


  public void onListItemClick(ListView l, View v, int position, long id) {
      ArrayList<String>arr=new ArrayList<String>();
    String item = (String) getListAdapter().getItem(position);
    DetailFragment fragment = (DetailFragment) getFragmentManager()
        .findFragmentById(R.id.detailFragment);
 if (getResources().getConfiguration().orientation == 
            Configuration.ORIENTATION_LANDSCAPE) {
        fragment.setText(item);
    }
    else {
      Intent intent = new Intent(getActivity().getApplicationContext(),
          DetailActivity.class);
      Xmlparsingactiforele d=new Xmlparsingactiforele();
      arr=d.myelarraylist(item);
     // arr.get(0);
     intent.putExtra("value1", arr.get(0));
     intent.putExtra("value2", arr.get(1));
     intent.putExtra("value3", arr.get(2));
     intent.putExtra("value4", arr.get(3));
      startActivity(intent);

    }

  }
  private ArrayList<HashMap<String, String>> buildData() {
        ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
        list.add(putData("Android", "Mobile","two", "1"));
        list.add(putData("Windows7", "Windows7","one", "2"));
        list.add(putData("iPhone", "iPhone","three", "3"));
        return list;
      }

      private HashMap<String, String> putData(String name, String purpose,String a, String n) {
        HashMap<String, String> item = new HashMap<String, String>();
        item.put("name", name);
        item.put("purpose", purpose);
        item.put("desc", a);
        item.put("num", n);

        return item;
      }
}  
4

2 に答える 2

2

アイテムに必要なものを表示することを妨げるものは何もありませんListView。の API ドキュメントをお読みくださいListFragment

メソッドで必要な型のListAdapterを返すを作成できます。この点では、との間にほとんど違いはありません。ViewgetViewListActivityListFragment

于 2012-09-12T11:21:08.450 に答える
0

フラグメントクラスとアクティビティクラスの両方を単一のクラスに拡張することはできません。したがって、Activityをmainクラスに拡張し、内部クラスを作成して、Fragmentクラスをその中に拡張します。

于 2012-09-12T11:08:29.633 に答える