我有源代码使用json从服务器获取数据并在表中动态显示它。我想让行表中的每个数据都可以点击。点击数据后,它将显示包含数据详细信息的新活动。 这是我的代码:
for (Iterator i = penyakit.iterator(); i.hasNext();) {
Penyakit p = (Penyakit) i.next();
/** Create a TableRow dynamically **/
tr = new TableRow(this);
/** Creating a TextView to add to the row **/
String nomor = String.valueOf(no);
isikolom1 = new TextView(this);
isikolom1.setText(nomor);
isikolom1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
isikolom1.setPadding(10, 10, 10, 10);
isikolom1.setGravity(Gravity.CENTER);
LinearLayout Ll = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
params.setMargins(0, 2, 2, 0);
Ll.addView(isikolom1, params);
tr.addView((View) Ll); // Adding textView to tablerow.
TextView isikolom2 = new TextView(this);
isikolom2.setText(p.getNama());
isikolom2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
isikolom2.setPadding(10, 10, 10, 10);
isikolom2.setGravity(Gravity.CENTER);
idp = p.getId();
isikolom2.setClickable(true);
isikolom2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in = new Intent(getApplicationContext(),
detail_penyakit.class);
// sending pid to next activity
in.putExtra(TAG_id, idp);
// starting new activity and expecting some response back
startActivityForResult(in, 100);
}
});
Ll = new LinearLayout(this);
params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
params.setMargins(0, 2, 2, 2);
Ll.addView(isikolom2, params);
tr.addView((View) Ll); // Adding textview to tablerow.
tl.addView(tr, new TableLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
no = no + 1;
}
当我点击TableRow时,它会显示包含最后数据详细信息的新活动。我点击的表行中的数据不详细。如何在单击的表行中显示数据的详细信息?谢谢你的建议。
答案 0 :(得分:1)
您使用的变量idp
是在迭代器之外定义的,因此,在执行迭代器之后,idp
的值将是id
的最后一个值的penyakit
。
因此,在迭代器
idp