在 OncheckedChanged 中使用意图
Using intent inside OncheckedChanged
我可以知道我应该如何调用此行中下一个 activity 的意图吗?(案例 3)
它在开关的 OncheckedChanged 里面。
我遇到了错误
Home.this cannot be referenced from static context
我的activity如下:
......
.....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = new View(this.getActivity());
ARG_NUMBER = getArguments().getInt(ARG_SECTION_NUMBER, 0);
switch (ARG_NUMBER) {
case 1:
rootView = inflater.inflate(R.layout.fragment_home, container, false);
break;
case 2:
rootView = inflater.inflate(R.layout.fragment_stamp, container, false);
break;
case 3:
rootView = inflater.inflate(R.layout.fragment_setting, container, false);
//to be optimize
Switch passcode_switch = (Switch) rootView.findViewById(R.id.switch1);
passcode_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
Log.d("Switch State=", "" + "Is checked");
Toast.makeText(getActivity(), "Generated!", Toast.LENGTH_SHORT).show();
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
startActivity(setup_passcode);
}else{
Log.d("Switch State=", "" + "NOT checked");
}
}
});
break;
}
return rootView;
....
....
我无法为该行调用意图:
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
startActivity(setup_passcode);
改变
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
到
final Intent setup_passcode = new Intent(getActivity(), Passcode.class);
使用 Fragment
中的 getActivity()
获取上下文。
显示toast的问题你可以自己解决
Toast.makeText(getActivity(), "Generated!", Toast.LENGTH_SHORT).show();
您正在使用 getActivity(),因此获取要在意图中使用的上下文的方法相同,您可以使用 getActivity 作为
final Intent setup_passcode = new Intent(getActivity(), Passcode.class);
startActivity(setup_passcode);
我可以知道我应该如何调用此行中下一个 activity 的意图吗?(案例 3) 它在开关的 OncheckedChanged 里面。
我遇到了错误
Home.this cannot be referenced from static context
我的activity如下:
......
.....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = new View(this.getActivity());
ARG_NUMBER = getArguments().getInt(ARG_SECTION_NUMBER, 0);
switch (ARG_NUMBER) {
case 1:
rootView = inflater.inflate(R.layout.fragment_home, container, false);
break;
case 2:
rootView = inflater.inflate(R.layout.fragment_stamp, container, false);
break;
case 3:
rootView = inflater.inflate(R.layout.fragment_setting, container, false);
//to be optimize
Switch passcode_switch = (Switch) rootView.findViewById(R.id.switch1);
passcode_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
Log.d("Switch State=", "" + "Is checked");
Toast.makeText(getActivity(), "Generated!", Toast.LENGTH_SHORT).show();
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
startActivity(setup_passcode);
}else{
Log.d("Switch State=", "" + "NOT checked");
}
}
});
break;
}
return rootView;
....
....
我无法为该行调用意图:
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
startActivity(setup_passcode);
改变
final Intent setup_passcode = new Intent(Home.this, Passcode.class);
到
final Intent setup_passcode = new Intent(getActivity(), Passcode.class);
使用 Fragment
中的 getActivity()
获取上下文。
显示toast的问题你可以自己解决
Toast.makeText(getActivity(), "Generated!", Toast.LENGTH_SHORT).show();
您正在使用 getActivity(),因此获取要在意图中使用的上下文的方法相同,您可以使用 getActivity 作为
final Intent setup_passcode = new Intent(getActivity(), Passcode.class);
startActivity(setup_passcode);