レポートを表示するように設計されたアプリケーションを作成しました。アプリケーションの最初の画面は、レポートの情報 (名前、パス) を示すテーブルです。
そのため、レポートの詳細情報が表示される次の画面に移動し、その行に対応するレポートが何であるかを知るために、テーブルの行をクリック可能にしたいと考えています。だから私は自分の行を書いた:
テーブルレポート行:
public class TableReportRow extends TableRow {
Report report;
public TableReportRow(Context context, Report report) {
super(context);
this.report = report;
}
public Report getReport() {
return report;
}
public void setReport(Report report) {
this.report = report;
}
}
次に、プログラムでテーブルを作成しました。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reports_list_activity_layout);
application = (SGRaportManagerAppObj)getApplication();
reportsRepository = application.reportsRepository.getReportsRepository();
TableLayout table = (TableLayout) findViewById(R.id.tableReportsList);
table.setStretchAllColumns(true);
table.setShrinkAllColumns(true);
final String tag = "tag";
for (int i= 0; i < reportsRepository.size(); i++) {
Report tempReport = reportsRepository.get(i);
TableReportRow row = new TableReportRow(this, tempReport);
// ...
row.addView(tvName);
row.addView(tvPath);
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// This is where I need help.
}
});
table.addView(row);
}
ここで、ビューのキャストを実行onClick()
してメソッドにアクセスしGetReport()
、行に対応する実際のレポートを取得する必要がありますが、正しく取得できないようです。誰かこれで私を助けてくれませんか?どんな助けでも大歓迎です。