2016-03-28 9 views
-1

現在、私はArraylist JavaClassNameの名前を表示するデフォルトのリストビューを持っています。私は、リストビューにImageViewのを実装することを望んだので、私は読んで、これらの2つのリンクからメソッドを試してみました:
Android Custom Listview with Image and Text using ArrayAdapter
Android Custom ListView with Images and Text – ExampleAndroid Customized ListView and ArrayList

私は問題は私自身のArrayListように、それぞれのCustomListクラスで自分のString[]Integer[]から変換しています画像と名前はそのArraylistに格納されます。私のArrayListも同様に他のデータで構成されていますが、カスタマイズされたListViewで表示するにはデータを取得する必要があります。私はcustomAdapterを作成するために提供されたリンクのいずれかに密接に従っている

private final Activity context; 
private final String[] itemname; 
private final Integer[] imgid; 

public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid) { 
    super(context, R.layout.mylist, itemname); 
    // TODO Auto-generated constructor stub 

    this.context=context; 
    this.itemname=itemname; 
    this.imgid=imgid; 
} 

public View getView(int position,View view,ViewGroup parent) { 
    LayoutInflater inflater=context.getLayoutInflater(); 
    View rowView=inflater.inflate(R.layout.mylist, null,true); 

    TextView txtTitle = (TextView) rowView.findViewById(R.id.item); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    TextView extratxt = (TextView) rowView.findViewById(R.id.textView1); 

    txtTitle.setText(itemname[position]); 
    imageView.setImageResource(imgid[position]); 
    extratxt.setText("Description "+itemname[position]); 
    return rowView; 

}; 

編集/に追加します。そして、これは私がMainActivityに持っているものである

final ArrayList<JavaClassName> arrayListName = new ArrayList<JavaClassName>(); 
arrayListName.add(new JavaClassName(R.drawable.icon1, "name", "info", "info", "info")); 
arrayListName.add(new JavaClassName(R.drawable.icon2, "name", "info", "info", "info")); 

final ArrayList<String> itemName = new ArrayList<String>(); 
    for(int i=0; i<arrayListName.size(); i++){ 
     String name = arrayListName.get(i).getName().toString(); 
     itemName.add(name); 
    }; 

CustomAdapter adapter = new CustomAdapter>(this, android.R.layout.simple_list_item_1, itemName); 
    listView.setAdapter(adapter); 

私はString []型と合うことができるどのように整数[] CustomAdapterアダプタにCustomAdapterクラス=新しいCustomAdapter>(これ、android.R.layout.simple_list_item_1から、 項目名);?私が言うことができるものから、

+0

あなたのコードを共有し、何が起こっているかを正しく説明してください。 – aribeiro

+0

'adapter = new ArrayAdapter (this、android.R.layout.simple_list_item_1、arrayListName); ' これは現在のアダプターです。指定された2つのリンクは、2つの配列を渡すこのアダプターを使います: 'CustomListAdapter adapter = new CustomListAdapter(this、itemname、imgid);' どうすれば私のarraylistから別の2アレイ? – Alvin

+0

カスタムリストビューを作成するために、リスト内のデータを入力するために作成したコレクションを受け入れるカスタムアダプタを作成する必要があります。詳細については、質問にコードを入力してください。 –

答えて

0

https://www.youtube.com/watch?v=cyk_ht8z6IA

、私は、ユーザーが独自にアダプターを作成する必要があります示唆しています。私はarraylistについてよくわかりませんが、私は配列を使っていました。

+0

はい、自分のアダプタを作成しましたが、arraylistに合わせて変更する方法がわかりません。配列を使用する場合、別の4-5データがあります。つまり、複数の配列を作成する必要があります。 arraylistをやっている私の目的は、ListViewが一度クリックされると、arrayListからの複数のデータを表示する別のページが意図されるためです – Alvin

0

変換ArrayList to Array

List<String> names = new ArrayList<String>(); 
// add stuff here 
String[] namesArr = names.toArray(new String[names.size()]); 

・ホープ、このことができます!

0

カスタムアダプタークラスはArrayAdapterから継承しますが、私は推測します。あなただけTextViewよりも複雑なレイアウトを持っているので

enter image description here

- ドキュメントによると、あなたはコンストラクタに提供リソースは、(第2引数、あなたのケースでR.layout.simple_list_item_1は)TextViewを含むレイアウトする必要があります代わりにBaseAdapterクラスを拡張する必要があります。その後、

  1. は(あなたのケースでArrayList<String>ArrayList<Integer>を)あなたのデータを管理するために、独自のArrayList(複数可)を作成します。
  2. リストを管理するための追加、削除などの方法を提供します。
  3. getViewメソッドをオーバーライドしてカスタムレイアウトを拡張し、必要に応じてテキストとイメージを設定します。
関連する問題