0

プログラミング初心者なので教えてください。しかし、parse.com からいくつかのオブジェクトを取得しています。オブジェクトを取得したら、このメソッドを呼び出します。しかし、私の問題は、このメソッドが呼び出されるたびに、最初のアイテムが毎回置き換えられることです。これは簡単に修正できることはわかっていますが、少しだけ助けが必要です。

private void display(Object name, Object weightClass, Object record, int count) {       


    ListView list = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    list.setAdapter(listAdapter);
    String fightCard = (name).toString();
    listAdapter.add(fightCard); 
    listAdapter.notifyDataSetChanged();          
 }

また、これはまったく別の質問であることはわかっていますが、リスト ビューをカスタマイズする方法を調べる必要があることはわかっています。色とサイズを変更したいと考えています。これを行う方法を学ぶための良いリンクを知っている人はいますか? 前もって感謝します

4

3 に答える 3

2

以下は、最初にメソッドの外部で作成する必要があります。

ListView list = (ListView) findViewById(R.id.list);
ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        list.setAdapter(listAdapter);

次に、アダプタをメソッドに渡します

display(name,weightClass,record,count, adapter);

または

メソッド内でアクセスするには、アダプタをグローバルにするだけです。

 ArrayAdapter<String> listAdapter;

 public void onCreate(Bundle savedInstanceState) {

   ListView list = (ListView) findViewById(R.id.list);
   listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
   list.setAdapter(listAdapter);
//whatever else you want

}

そしてあなたの方法の中で:

private void display(Object name, Object weightClass, Object record, int count) {       

String fightCard = (name).toString();
listAdapter.add(fightCard); 
listAdapter.notifyDataSetChanged();          

}

この後、このメソッドを呼び出すたびに、データがアダプターに送られます。

あなたがまだ混乱している/立ち往生しているなら、私を襲ってください。

于 2013-02-21T23:52:04.290 に答える
1

文字列が返されるたびに返されるようにメソッドを変更することを検討してください。だからそれは:

private String display(Object name, Object weightClass, Object record, int count) {       

String fightCard = (name).toString();
return fightCard;
}

次に、onCreate()内で:

ListView lv = (ListView) findViewById(R.id.list);
ArrayList<String> your_array_list = new ArrayList<String>();

 "loop here -> get each String and add it to list : ( your_array_list.add( fightCard ) ) "

        ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

     lv.setAdapter(arrayAdapter); 

ステップバイステップ:
1。レイアウトファイルでIDを見つけてlistViewアイテムを宣言します
2.アイテムの保存に使用するArrayListを宣言します
3.アイテムをarraylistに追加します。ここでは、メソッドからそれらを取得するため、すべてを追加するまでループします
。4.ArrayAdapterを宣言し
ます。5。listViewの背後にデータを設定します。

于 2013-02-22T00:08:50.230 に答える
1

私はあなたがArrayAdapterこれを試すことについての議論を逃していると思います:

ArrayList<String> namesArray = new ArrayList<>();
ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, namesArray);

新しいアイテムがあるたびに、それをnamesArrayに追加して、

namesArray.add((name).toString());

listAdapter.notifyDataSetChanged();

これを行うlistAdapter.add(fightCard);と、ListViewの既存のアイテムが置き換えられ続けるためです。

それが役に立てば幸い

于 2013-02-22T00:13:54.037 に答える