Android 检查什么片段发送了 onClick 动作
Android check what fragment sent onClick action
我必须构建一个简单的应用程序,其中包含 3 个片段,每个片段包含 1 个按钮。
如果按下这些按钮之一,站点应该加载到主 activity 包含的 Web 视图中。到目前为止,我已经对 activity 进行了基本回调,但我的问题是。如何检查按下了哪个按钮?因为它们似乎都向 activity 发送相同的视图。我曾尝试使用 view.setTag() 方法,但无法正常工作。
这是我的一些代码:
MainActivity.java
@Override
public void onClick(View v){
if(v.getId() == R.id.btnApple){
wvResult.loadUrl("http://www.apple.com");
}else if (v.getId() == R.id.btnMic){
wvResult.loadUrl("http://www.microsoft.com");
}else if(v.getId() == R.id.btnOracle){
wvResult.loadUrl("http://www.oracle.com");
}
}
片段之一类(各有不同(apple,microsoft,oracle),其余完全一样):
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.btn_a, container, false);
btnApple = (Button)v.findViewById(R.id.btnApple);
btnApple.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callBack.onClick(v.getRootView());
}
});
return v;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
callBack = (View.OnClickListener) activity;
}
希望有人能帮助我
只需在回调方法中传递 v(不是 v.getRootView())因为 it 是被点击的视图。
View.getRootView() 检索视图层次结构的根视图元素,这很可能是 ViewGroup 类 (LinearLayout, RelativeLayout, ...)。那是 包含 单击的按钮的视图。
我必须构建一个简单的应用程序,其中包含 3 个片段,每个片段包含 1 个按钮。 如果按下这些按钮之一,站点应该加载到主 activity 包含的 Web 视图中。到目前为止,我已经对 activity 进行了基本回调,但我的问题是。如何检查按下了哪个按钮?因为它们似乎都向 activity 发送相同的视图。我曾尝试使用 view.setTag() 方法,但无法正常工作。
这是我的一些代码:
MainActivity.java
@Override
public void onClick(View v){
if(v.getId() == R.id.btnApple){
wvResult.loadUrl("http://www.apple.com");
}else if (v.getId() == R.id.btnMic){
wvResult.loadUrl("http://www.microsoft.com");
}else if(v.getId() == R.id.btnOracle){
wvResult.loadUrl("http://www.oracle.com");
}
}
片段之一类(各有不同(apple,microsoft,oracle),其余完全一样):
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.btn_a, container, false);
btnApple = (Button)v.findViewById(R.id.btnApple);
btnApple.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callBack.onClick(v.getRootView());
}
});
return v;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
callBack = (View.OnClickListener) activity;
}
希望有人能帮助我
只需在回调方法中传递 v(不是 v.getRootView())因为 it 是被点击的视图。
View.getRootView() 检索视图层次结构的根视图元素,这很可能是 ViewGroup 类 (LinearLayout, RelativeLayout, ...)。那是 包含 单击的按钮的视图。