试图复制Click Event

时间:2017-01-16 08:36:19

标签: android onclick

只需按一下按钮即可打开指向网页的链接,此布局上有多个按钮。现在我想要复制第一个按钮的事件,以便将其用于其他按钮。但是当我复制代码并将名称替换为另一个按钮时,我会遇到一些错误。有什么问题?;

public class FourthFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fourth_layout, container, false);
    final Button button2 = (Button) view.findViewById(R.id.button2);
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurick.magister.net"));
            startActivity(browserIntent);
        }

    });
    return view;

    final Button button3 = (Button) view.findViewById(R.id.button3);
//a red line is showing line above
    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net"));
            startActivity(browserIntent);
        }

    });
    return view;

}
}

3 个答案:

答案 0 :(得分:2)

您的第一个return view语句会导致此方法返回。 因此,此语句下面的代码将不会被执行。您的ide应该显示错误消息Unreachable statement

给你的两个听众: 只创建一个侦听器并将其设置为两个视图:

View.OnClickListener listener = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net"));
        startActivity(browserIntent);
    }
}
view.findViewById(R.id.button2).setOnClickListener(listener);
view.findViewById(R.id.button3).setOnClickListener(listener);

答案 1 :(得分:0)

两个return view语句。 这使得下面的代码毫无用处。那是错误

答案 2 :(得分:0)

而不是使用新的OnClickListener, 在您的类中实现View.OnClickListener, 这将为所有点击事件创建一个通用方法

这样做..

 @Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.button_1:
        case R.id.button_2:
            //your common action goes here which will be executed for both buttons
    }
}