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, ...)。那是 包含 单击的按钮的视图。