如何判断在SQLite数据库中创建的TextView是否被单击?

时间:2012-11-10 23:19:34

标签: java android sql textview

我有一个包含团队名称和团队编号的数据库(都存储为字符串 - 数字有时会包含字母)

我想要它,所以当你单击“打开”按钮时,它会弹出一个弹出窗口,其中包含所有团队的名字和数字,如果你点击一个,它将关闭弹出窗口并设置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?

附带问题:在制作视图时(如LinearLayout vertlay = new LinearLayout(null);),我应该使用哪种上下文?我不完全理解'上下文'是什么,所以我真的不知道用什么来代替“null”。

1 个答案:

答案 0 :(得分:1)

  

如何使主程序(顶级代码)知道何时单击其中一个TextView?

只需制作tv clickable并添加OnClickListener

  

附带问题:我应该使用什么背景?

您暗示getData()位于数据库适配器类ScoutingFormData中,保存对传递给构造函数的Context的引用,并在以后重用:

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
    }
});