0

问题是我的布局是要输入的,我需要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似乎,它工作,移动等等,但不会让我访问先生点击的方法,因为它TextView已被删除并放入时间。

4

1 回答 1

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);
  }
于 2012-11-02T11:33:28.470 回答