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