2015-12-21 74 views
-1

当切换到第二个活动时,此项目将抛出“IllegalStateException:无法执行android:onClick的方法”。单击第二个活动时出错

我已经嵌入主要和第二个活动以及错误代码。 有什么想法?

干杯

MainActivity

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


    } 

    public void onBtnClicked(View v) { 

     if (v.getId() == R.id.button4) { 
      MessageBox("About This Game"); 
     } 
     if (v.getId() == R.id.button5) { 

      System.exit(0); 
     } 
     if (v.getId() == R.id.button3) { 

      MessageBox("Visit Our Web Site to view TopPlayers"); 
     } 
     if (v.getId() == R.id.button1) { 
      Intent intent; 
      intent = new Intent(this, Qrcode.class); 
      startActivity(intent); 
     } 


    } 
    public void MessageBox(String message) { 
     Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 
    } 
} 

SecondActivity

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.ActivityNotFoundException; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast; 

public class Qrcode extends Activity { 
    /** Called when the activity is first created. */ 

    static final String ACTION_SCAN = "com.google.zxing.client.android.SCAN"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.two); 
    } 

    public void scanBar(View v) { 
     try { 
      Intent intent = new Intent(ACTION_SCAN); 
      intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
      startActivityForResult(intent, 0); 
     } catch (ActivityNotFoundException anfe) { 
      showDialog(Qrcode.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show(); 
     } 
    } 

    public void scanQR(View v) { 
     try { 
      Intent intent = new Intent(ACTION_SCAN); 
      intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
      startActivityForResult(intent, 0); 
     } catch (ActivityNotFoundException anfe) { 
      showDialog(Qrcode.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show(); 
     } 
    } 

    private static AlertDialog showDialog(final Activity act, CharSequence title, CharSequence message, CharSequence buttonYes, CharSequence buttonNo) { 
     AlertDialog.Builder downloadDialog = new AlertDialog.Builder(act); 
     downloadDialog.setTitle(title); 
     downloadDialog.setMessage(message); 
     downloadDialog.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialogInterface, int i) { 
       Uri uri = Uri.parse("market://search?q=pname:" + "com.google.zxing.client.android"); 
       Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
       try { 
        act.startActivity(intent); 
       } catch (ActivityNotFoundException anfe) { 

       } 
      } 
     }); 
     downloadDialog.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialogInterface, int i) { 
      } 
     }); 
     return downloadDialog.show(); 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     if (requestCode == 0) { 
      if (resultCode == RESULT_OK) { 
       String contents = intent.getStringExtra("SCAN_RESULT"); 
       String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 

       Toast toast = Toast.makeText(this, "Content:" + contents + " Format:" + format, Toast.LENGTH_LONG); 
       toast.show(); 
      } 
     } 
    } 


} 

错误:

Process: com.example.sahan.project, PID: 4907 
java.lang.IllegalStateException: Could not execute method for android:onClick 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275) 
at android.view.View.performClick(View.java:4780) 
at android.view.View$PerformClick.run(View.java:19866) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5257) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270) 
at android.view.View.performClick(View.java:4780) 
at android.view.View$PerformClick.run(View.java:19866) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5257) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.sahan.project/com.example.sahan.project.Qrcode}; have you declared this activity in your AndroidManifest.xml? 
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777) 
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501) 
at android.app.Activity.startActivityForResult(Activity.java:3745) 
at android.app.Activity.startActivityForResult(Activity.java:3706) 
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:784) 
at android.app.Activity.startActivity(Activity.java:4016) 
at android.app.Activity.startActivity(Activity.java:3984) 
at com.example.sahan.project.MainActivity.onBtnClicked(MainActivity.java:36) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270) 
at android.view.View.performClick(View.java:4780) 
at android.view.View$PerformClick.run(View.java:19866) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5257) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
12-21 22:32:10.708 4907-4907/com.example.sahan.project I/Process: Sending signal. PID: 4907 SIG: 9 

回答

0

在你的清单 - 添加活动.Qrcode

​​
1

添加这个Activity类清单文件

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
     <activity 
     android:name=".Qrcode"/> 
0

在你的清单

<activity 
     android:name=".Qrcode"/> 
添加此
相关问题