このように、データベースから取得したレコードに応じて、クリック可能なテキストビューを動的に作成します。
DBAdapter db = new DBAdapter(this);
db.open();
Cursor c = db.getAllProfiles();
if(c.moveToFirst())
{
do{
TextView tv = new TextView(this);
tv.setText(c.getString(1));
tv.setTextSize(18);
tv.setTextColor(Color.BLACK);
tv.setClickable(true);
tv.setPadding(0, 10, 0, 0);
tv.setGravity(Gravity.CENTER);
mainLayout.addView(tv);
tv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(), tv.getText().toString(), Toast.LENGTH_LONG).show();
}
});
}while(c.moveToNext());
}
else
Toast.makeText(getBaseContext(), "No Profiles", Toast.LENGTH_LONG).show();
db.close();
各texviewでクリックイベントを個別に設定するにはどうすればよいですか? 途中で、ループでクリック イベントを作成すると、すべてのテキストビューでクリック イベントがトリガーされる可能性があります。
*更新はすべてのループにイベントを追加しようとしましたが、次のエラーが発生しました:
「別のメソッドで定義された内部クラス内の非最終変数を参照することはできません」。