0

チーム名とチーム番号を含むデータベースがあります(両方とも文字列として保存されます-数字には文字が含まれている場合があります)

「開く」ボタンをクリックすると、すべてのチームの名前と番号が表示されるポップアップが表示され、いずれかをクリックすると、ポップアップが閉じられ、両方の editText が名前に設定されます。 & 番号。

                Dialog d = new Dialog(this);
            ScoutingFormData info = new ScoutingFormData(this);
            info.open();
            ScrollView scr = info.getData();
            info.close();
            d.addContentView(scr, null);
            d.show();

それはメインプログラムからのもので、「開く」をクリックするとこうなります。ScoutingFormData は私の SQLite データベースで、getData は次のとおりです。

    public ScrollView getData() {
    String[] columns=new String[]{KEY_ROWID,KEY_NAME,KEY_NUM};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    ScrollView result=new ScrollView(null);
    int iID = c.getColumnIndex(KEY_ROWID);
    int iName = c.getColumnIndex(KEY_NAME);
    int iNum = c.getColumnIndex(KEY_NUM);
    LinearLayout vertlay = new LinearLayout(null);
    vertlay.setOrientation(LinearLayout.VERTICAL);
    for (c.moveToFirst(); !c.isAfterLast();c.moveToNext()){
        TextView tv=new TextView(null);
        tv.setText(c.getString(iNum)+"  "+c.getString(iName));
        vertlay.addView(tv);
    }
    result.addView(vertlay);
    return result;
}

これでダイアログが作成されますが、これらのTextViewの1つがクリックされたときにメインプログラム(トップコード)が認識できるようにするにはどうすればよいですか?

副次的な質問: View(LinearLayout vertlay = new LinearLayout(null); など) を作成するとき、どのコンテキストを使用する必要がありますか? 「コンテキスト」が何であるかを完全に理解していないので、「null」を何に置き換えるか本当に迷っています。

4

1 に答える 1

1

これらの TextViews のいずれかがクリックされたときにメイン プログラム (トップ コード) が認識されるようにするにはどうすればよいですか?

tv clickableを作成して追加するだけOnClickListenerです。

副次的な質問: どのコンテキストを使用する必要がありますか?

getData()あなたはそれがあなたのデータベースアダプタクラスにあることをほのめかしScoutingFormData、コンストラクタに渡されたコンテキストへの参照を保存し、後でそれを再利用します:

private Context mContext;
public ScoutingFormData(Context context) {
    mContext = context;
}

すべて一緒に:

TextView tv=new TextView(mContext);
tv.setClickable(true);
tv.setOnClickListener(new OnClickListener() {
    public void onClick(View view) {
        // Do something
    }
});
于 2012-11-10T23:22:58.517 に答える