2017-09-27 95 views
-2

在MainActivity中,当我单击图像时,出现NewActivity。这个NewActivity有一个复选框,当我点击chekbox时我想要再次显示MainActivity并隐藏NewActivity。即时通讯如下所示,但它不工作,它显示“应用程序已停止”。应用已停止开始新活动

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(); 
      } 
     } 


    } 

登录:

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) 
+0

为了告诉您发生了什么 - “应用已停止”,我们需要查看logcat输出,告诉我们什么问题是或可能是什么。 – csmckelvey

回答

0

尝试onCreate方法里面的代码...希望它会运行,如果它多申”请复制logcat信息并告诉我们..

final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox); 
checkBox .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

      if (isChecked) { 
       Intent intent = new Intent(NewActivity.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
      } 
     } 
    });