1
tics
には3つの項目があります。次のコードは3つのチケット項目を作成しますが、常に最初のチケットのTextView
のテキストを設定します。次のコードでgetLayoutInflater()ループ内のinflate()は常に最初のビューを返します
public void onSuccess(int i, Header[] headers, byte[] bytes) {
progress.dismiss();
String response = new String(bytes);
try{
JSONObject obj = new JSONObject(response);
JSONArray tics = obj.getJSONArray("tickets");
LinearLayout p = (LinearLayout)findViewById(R.id.tickets);
for(int j = 0;j<tics.length();j++){
LinearLayout t =(LinearLayout) getLayoutInflater().inflate(R.layout.ticket_row, p);
TextView topic = (TextView)t.findViewWithTag("topic");
TextView section = (TextView)t.findViewWithTag("section");
TextView datetime = (TextView)t.findViewWithTag("datetime");
JSONObject item = tics.getJSONObject(j);
Toast.makeText(getApplicationContext(),item.getString("Caption") ,Toast.LENGTH_LONG).show();
topic.setText(item.getString("Caption"));
datetime.setText(item.getString("DateString"));
section.setText(item.getString("Section"));
}
}catch (Exception e){}
}
:
LinearLayout t =(LinearLayout) getLayoutInflater().inflate(R.layout.ticket_row, p);
はt
は膨張しView
ではないでしょうか?
ビューは親に追加されていません。私は 'p.addView(t);'を使うべきですか? –
はい、まさに... – Blackbelt
素晴らしい!どうもありがとう。 –