如何更新TextView';Android中的文本是什么?
我在Android中有一个视图,它有一个存储x和y值的onTouchEvent。在我的活动中,我有两个文本视图,我最初将其设置为0,但希望在每次单击视图时更新它们 有人能解释一下怎么做吗 编辑 “我的活动”显示3个不同的视图,其中一个视图有一个onTouchEvent,用于查看单击时的x和y位置如何更新TextView';Android中的文本是什么?,android,android-activity,textview,listener,Android,Android Activity,Textview,Listener,我在Android中有一个视图,它有一个存储x和y值的onTouchEvent。在我的活动中,我有两个文本视图,我最初将其设置为0,但希望在每次单击视图时更新它们 有人能解释一下怎么做吗 编辑 “我的活动”显示3个不同的视图,其中一个视图有一个onTouchEvent,用于查看单击时的x和y位置 public class MyActivity extend Activity { //LinearLayouts created to hold the Views @Overri
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
Dan S提到的选项(传递文本视图)是一个选项,但是我希望我的活动能够找到ClickView的onTouchEvent
如果没有其他方法可以替代上述方法,我将继续并将其标记为已解决,因为上述选项确实有效,只是使我使用它的方式稍微复杂一些。在onTouchEvent中使用此伪代码
textViewX.setText(String.valueOf(motionEvent.getX()));
textViewY.setText(String.valueOf(motionEvent.getY()));
做如下的事情
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
}
}
感谢您的回复,但这正是我提问的原因,TextView是在活动中创建的,而不是在OnTouchEvent所在的视图中创建的。我应该在该视图中创建文本视图并将其传递给活动吗?只需在活动中使用onTouchEvent,或者您可以将文本视图传递给自定义可触摸小部件。@StartingGroovy:您可以尝试Dan的建议,但可以使用视图的
getContext()
方法并将其强制转换为活动类,例如((MyActivity)getContext()).textViewX-TextViews必须是公共的
@MisterSquonk是否可以从活动中执行此操作?我想我是在问,我是否能够从视图中看到onTouch是否发生过,如果发生过,是否能够抓住它的价值?我之所以避免你提到的方式,是因为我的文本视图不一定会保持不变,在任何给定的时间都会有2-6个time@Dan我不知道你在活动中使用onTouchEvent是什么意思;您是否希望我在活动中将onTouchEvent代码从视图移动到onTouchEvent?我将编辑我的主要帖子来解释更多,因为我太简短了,所以你建议转到丹提到的内容?是的,但你似乎对他提出的建议和如何做有些困惑,我想我应该给你举个例子。谢谢你举个例子,非常感谢。既然Dan之前提到过,我会继续把他标记为正确的,但也会给你投票,因为你的每一条评论/帖子都很有帮助。如果我有任何问题,我会留下另一个评论。谢谢你抽出时间来,我可以帮你,你接受丹的回答没问题。谢谢你的投票,祝你好运。