Как обновить текст TextView в Android? - PullRequest
1 голос
/ 16 ноября 2011

У меня есть представление в Android с onTouchEvent, в котором хранятся значения x и y. В моей Деятельности у меня есть два TextView, которые я изначально установил на 0, но хотел бы обновлять их каждый раз при щелчке на View.

Может кто-нибудь объяснить, как это сделать?

Редактировать

Моя активность отображает 3 разных просмотра, и у одного из представлений есть onTouchEvent, чтобы увидеть, каково было положение x и y при нажатии.

public class MyActivity extend Activity {
    //LinearLayouts created to hold the Views


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //add buttons 
        for(Button b : myButtons) {
            buttonLayout.addView(b);
        }

        clickLayout.addView(clickView);    //ClickView is where I use the onTouchEvent and want to get the values from

        for(TextView tv : myTextViews) {
            //This is where I would like to set the text
            //It needs to update every time the ClickView's onTouchEvent happens
            textLayout.addView(tv);
        }
    }
}

Если мой источник ClickView необходим, дайте мне знать, и я добавлю его туда. Тем не менее, он просто получает X и Y.

Опция, о которой упоминал Дэн С. (передача текстовых представлений), является опцией, однако я надеялся, что моя активность сможет получить доступ к ClickView onTouchEvent.

Если нет альтернативного пути упомянутым, я отмечу это как решенный, так как эти вышеупомянутые опции работают, только немного усложняют способ, которым я работал с ним.

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Сделайте что-то вроде следующего ...

public class MyActivity extends Activity
    implements View.OnTouchListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        ...

        // Set clickView's OnTouchListener to be handled
        // by the onTouch(...) method of this Activity
        clickView.setOnTouchListener(this);
    }

    @Override
    public onTouch(View v, MotionEvent event) {
        // The View parameter v will be the View that
        // was touched if you have more than one to handle
    }
}
1 голос
/ 16 ноября 2011

в onTouchEvent используйте этот псевдокод

textViewX.setText(String.valueOf(motionEvent.getX()));
textViewY.setText(String.valueOf(motionEvent.getY()));
...