问题是我的布局是打开并且我需要TextView
从一方移动到另一个屏幕,为此我确保布局视图然后删除所有面部再次显示相同的TextView
,以免TextView
在屏幕上被“拖动”。
这是我的代码:
Textview textview = new TextView(context); //context was been defined
poiView.removeAllViews();
for (int j = 0; j < poiP.length; j++) {
//code
texview.setText("iojforj");
poiView.addView(textview, params); //params was been defined
textview.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
function (v.getId());
}
});
现在的问题是,TextView
似乎有效,移动等等,但不会让我访问Mr点击的方法,因为TextView
被移除并放入时间。
答案 0 :(得分:2)
除了删除和重新添加textView之外,你应该只是搞乱它的可见性。
所以不要删除它们并在以后添加它们,你应该只做
textView.setVisibility(View.INVISIBLE); //to make it disappear
textView.setVisibility(View.VISIBLE); //to make it reappear
这样他们将保留他们分配的OnClickListeners
但是如果这是从另一个线程运行,则需要将其置于runOnUiThread()
调用中。
编辑: 让我们试试这个
Textview textview = new TextView(context); //context has been defined
poiView.removeAllViews();
OnClickListener buttonListener = new OnClickListener() { //listener here }
for (int j = 0; j < poiP.length; j++)
{
//code
texview.setText("iojforj");
poiView.addView(textview, params); //params was been defined
textview.setOnClickListener(buttonListener);
}