-2
MainActivityで画像をクリックすると、NewActivityが表示されます。このNewActivityにチェックボックスが1つあり、Chekboxをクリックしたときに、MainActivityを再度表示してNewActivityを非表示にしたいとします。私はこれを以下のようにしていますが、動作していないと、 "app has stopped"と表示されます。アプリケーションが新しいアクティビティの開始を停止しました
MainActivity:
public class MainActivity extends AppCompatActivity {
String mName = "none";
int mSpinnerPos = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.spinner2);
String string = String.valueOf(spinner.getSelectedItem());
final ImageView image = (ImageView)findViewById(R.id.image);
final TextView txt = (TextView) findViewById(R.id.textView4);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
mSpinnerPos = 0;
txt.setText(R.string.item_0);
image.setImageResource(R.drawable.bg);
break;
case 1:
mSpinnerPos = 1;
txt.setText(String.format(getString(R.string.item_1), mName));
image.setImageResource(R.drawable.item1);
break;
case 2:
mSpinnerPos = 2;
txt.setText(String.format(getString(R.string.item_2), mName));
image.setImageResource(R.drawable.item2);
break;
default:
//Default image
//image.setImageResource(R.drawable.item2);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public void addName(View view) {
EditText editext = (EditText) findViewById(R.id.editText2);
mName = editext.getText().toString();
TextView txt = (TextView) findViewById(R.id.textView4);
switch (mSpinnerPos) {
case 0:
//nothing to do
break;
case 1:
txt.setText(String.format(getString(R.string.item_1), mName));
break;
case 2:
txt.setText(String.format(getString(R.string.item_2), mName));
break;
}
}
public void newActivity(View view) {
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
}
}
NewActivity:
public class NewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox);
if (checkBox.isChecked()) {
Log.d("Pass", "pass");
}
}
public void onCheckboxClicked(View view) {
// Is the view now checked?
boolean checked = ((CheckBox) view).isChecked();
if(checked){
Intent intent = new Intent(NewActivity.this, MainActivity.class);
startActivity(intent);
this.finish();
}
}
}
ログイン:それはdosen」場合
java.lang.IllegalStateException: Could not find method onCheckBoxClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatCheckBox with id 'checkBox'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5637)
at android.widget.CompoundButton.performClick(CompoundButton.java:122)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
何が起こっているかを伝えるためにlogcatの出力を確認する必要があります。「アプリが停止しました」というメッセージは、問題が何であるかについては何も教えてくれません。 – csmckelvey