Java 处理许多动态创建的TextView';s

Java 处理许多动态创建的TextView';s,java,android,Java,Android,我有以下代码: for (int i = 0; i < dataStrings.length; i++) { TextView tv1 = new TextView(this); tv1.setTextSize(TEXT_SIZE); tv1.setTypeface(Typeface.MONOSPACE); tv1.setText(dataStrings[i]); dynamicLL.addView(tv1); } for(int i=0;i

我有以下代码:

for (int i = 0; i < dataStrings.length; i++) {
    TextView tv1 = new TextView(this);
    tv1.setTextSize(TEXT_SIZE);
    tv1.setTypeface(Typeface.MONOSPACE);
    tv1.setText(dataStrings[i]);
    dynamicLL.addView(tv1);
}
for(int i=0;i

基本上,我正在动态创建一些TextView(数量未知)。我希望每个文本视图都有自己的
OnLongClickListener
。我的问题是,当以这种方式生成文本视图时,如何为每个文本视图提供其唯一的OnLongClickListener,以及在创建侦听器后如何处理单击?

您可以在
for
循环中设置它们,如下所示

OnLongClickListener longClickListener = new OnLongClickListener () {
    @Override 
    public void onLongClick (View v) {
         switch (v.getId()) ...
    }
};

for (int i = 0; i < dataStrings.length; i++) {
    TextView tv1 = new TextView(this);
    tv1.setId(i * 1000);
    tv1.setOnLongClickListener(longClickListener);
}
OnLongClickListener longClickListener=新建OnLongClickListener(){
@凌驾
仅长按公共无效(视图v){
开关(v.getId())。。。
}
};
对于(int i=0;i

在监听器中的开关中,您可以检查按下了什么
TextView
,并执行相应的操作。

例如,对于第二个监听器,类似于“case 1000:”的内容?是的,您是对的。你可以提供任何易于使用的ID。事实上,我刚刚意识到这种方法行不通。如果我不知道将创建多少TextView,那么我如何知道要使用多少case语句?那么您如何知道要如何处理未知的TextView编号?