アクティビティはテーブルを動的に構築します。すべての行に OnClickListener を追加したいと思います。私はこのようにやっています:
TableLayout table = (TableLayout) findViewById(R.id.body);
for (final Document d : result) {
TableRow row;
if (getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
row = (TableRow) LayoutInflater.from(
LastDocumentsActivity.this).inflate(
R.layout.last_documents_body_row_portrait, null);
((TextView) row.findViewById(R.id.date)).setText(d
.getDate());
((TextView) row.findViewById(R.id.number)).setText(d
.getNumber());
((TextView) row.findViewById(R.id.value_netto)).setText(d
.getValueNetto().toString());
((TextView) row.findViewById(R.id.currency)).setText(d
.getCurrency());
table.addView(row);
} else {
row = (TableRow) LayoutInflater.from(
LastDocumentsActivity.this).inflate(
R.layout.last_documents_body_row_landscape, null);
((TextView) row.findViewById(R.id.number)).setText(d
.getNumber());
((TextView) row.findViewById(R.id.date)).setText(d
.getDate());
((TextView) row.findViewById(R.id.value_netto)).setText(d
.getValueNetto().toString());
((TextView) row.findViewById(R.id.value_brutto)).setText(d
.getValueBrutto().toString());
((TextView) row.findViewById(R.id.currency)).setText(d
.getCurrency());
((TextView) row.findViewById(R.id.status)).setText(d
.getStatus());
((TextView) row.findViewById(R.id.responsible_person))
.setText(d.getPersonResponsible());
((TextView) row.findViewById(R.id.orderId)).setText(Integer
.toString(d.getId()));
table.addView(row);
}
row.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("info", "OnClickListener works.");
Intent i = new Intent(LastDocumentsActivity.this,
DocumentDetailsActivity.class);
i.putExtra("document_id", d.id);
startActivity(i);
}
});
}
エミュレーター (3,2" QVGA (ADP2) (320x480:mdpi) Android 2.2) では完全に動作しますが、私の電話では動作しません。 (Huawei Ascend Y300、Android 4.1.1) 画面は同じように見えます (離れて)解決策から)、OnClickListener だけが機能しません.何が原因で、どうすれば修正できますか?