我有一个托管多个标签的活动(Fragment),现在我想通过id从tab(Fragment)获取EditText到它的托管活动并在其上设置监听器。
所以请帮我摆脱它。
提前致谢
答案 0 :(得分:0)
要从片段中按ID查找视图,请添加以下内容:
EditText edittext = getActivity().findViewById(R.id.edittext);
答案 1 :(得分:0)
简单的解决方案是
EditText editText = (EditText)getActivity().findViewById(R.id.viewid);
if( editText != null){
// set listener here
}
答案 2 :(得分:0)
在您的活动中
public EditText editText;
if(editText != null)
editText.setOnClickListner(this);
在你的片段中
Activity activity = (Activity)context;
//where context is your fragment's context
activity.edtText = (EditText)findViewById(R.id.viewid);
确保在editText不为null时设置侦听器,否则将获得空指针执行。
答案 3 :(得分:0)
可以有多种解决方案。在我看来,最好的方法是创建一个名为Callback的接口,如下所示
public interface Callback
{
public void onListenerActionPerformed(Some args);
}
现在,无论你想要什么片段连接听众,都要写一个函数
private Callback callback;
public void setCallback(Callback callback)
{
this.callback=callback;
}
现在在片段中的EditText上注册侦听器,并在相应函数的主体内写入
callback.onListenerActionPerformed(Some parameter)
现在从您的活动开始,在您已实例化片段写入的下方
fragmentInstanceName.setCallback(new Callback(){
public void onListenerActionPerformed(Some args){
//Your implementation
}
});