我在Android 程序的xml文件中加载的自定义ImageView控件中如何访问Activity中的其他控件的句柄 ?
自定义ImageView控件通过响应用户的滑动事件dispatchTouchEvent实现一个类似转盘的功能,我需要根据转盘旋转的角度去动态的刷新,xml中的其他控件的值...
自定义ImageView控件 通过响应用户的滑动事件
dispatchTouchEvent 实现一个类似转盘的功能,我需要根据转盘旋转的角度去动态的刷新,xml中的其他控件的值,例如TextView控件
mTextView01 显示的数字 ,不知道在如何
自定义ImageView控件的事件处理函数中如何获取TextView的句柄 ?我直接用
findViewById函数返回为NULL :
public class TalkRoundSpinView extends ImageView
{
....
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
switch (action) {
mTextView01 = (TextView) findViewById(R.id.textView01);
mTextView01.setText(R.string.s_Num1);
} 展开
dispatchTouchEvent 实现一个类似转盘的功能,我需要根据转盘旋转的角度去动态的刷新,xml中的其他控件的值,例如TextView控件
mTextView01 显示的数字 ,不知道在如何
自定义ImageView控件的事件处理函数中如何获取TextView的句柄 ?我直接用
findViewById函数返回为NULL :
public class TalkRoundSpinView extends ImageView
{
....
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
switch (action) {
mTextView01 = (TextView) findViewById(R.id.textView01);
mTextView01.setText(R.string.s_Num1);
} 展开
3个回答
展开全部
方法一:
1、自定义ImageView添加成员变量Activity activity;
2、添加构造器
public TalkRoundSpinView(Activity a){
super((Context)a);
this.activity = a;
}
使用activity.findViewById(R.id.textView01);获取TextView实例。
方法二:
将TextView在Activity中获取实例,将TextView以参数的形式传入自定义ImageView
1、自定义ImageView添加成员变量Activity activity;
2、添加构造器
public TalkRoundSpinView(Activity a){
super((Context)a);
this.activity = a;
}
使用activity.findViewById(R.id.textView01);获取TextView实例。
方法二:
将TextView在Activity中获取实例,将TextView以参数的形式传入自定义ImageView
追问
怎么调用
TalkRoundSpinView(Activity a)
的构造函数并将Activity 参数传入 TalkRoundSpinView类中 ? 我是在
TalkModeActivity中通过
setContentView(R.layout.talkmode_main);初始化自定义VIEW的,默认调用
public TalkRoundSpinView(Context context, AttributeSet attrs) {
super(context, attrs);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LayoutInflater inflater = LayoutInflater.from(context);
layout = inflater.inflate(R.layout.scale_view, null);
//可以用这个方法R.layout.scale_view这个是你控件的xml文件然后
button01 = (ImageButton) layout.findViewById(R.id.button01);
layout = inflater.inflate(R.layout.scale_view, null);
//可以用这个方法R.layout.scale_view这个是你控件的xml文件然后
button01 = (ImageButton) layout.findViewById(R.id.button01);
更多追问追答
追问
这样确实可以获取控件的ID了,不过为什么不能刷新对应的TextView的显示 ?
dispatchTouchEvent() {
LayoutInflater inflater = LayoutInflater.from(context1);
layout = inflater.inflate(R.layout.talkmode_main, null);
m_Textview = (TextView) layout.findViewById(R.id.textView01);
m_Textview.setText("aaaaaaaa");
invalidate();}
追答
能不能把你的代码发给我看一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询