2015-10-13 57 views
0

我在這個領域是新的 抱歉我的英語不好 我想做一個應用程序,執行打開第二個佈局和第二個佈局我想打開第一個佈局 但錯誤來吧我的意圖親​​切指導我我的應用程序沒有工作錯誤出現在意圖

package com.example.ahmed.calling; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 


public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button button= (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      setContentView(R.layout.my_layout2); 
      Intent intent = new Intent(getApplicationContext(),second.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

} 

我第二類是

public class second extends MainActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout2); 

    Button btn1 =(Button)findViewById(R.id.button2); 
    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(getApplicationContext(),MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 
} 
} 

錯誤來吧單擊它appers的第一項活動 上線25即startactivity(意向)按鈕親切指導我

我logcat的錯誤

10-15 00:32:14.968 26752-26752/? E/ConnectionService﹕ Failed to connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null} 


10-15 00:32:16.296 26939-26939/com.example.ahmed.calling E/AndroidRuntime﹕ FATAL EXCEPTION: main 
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ahmed.calling/com.example.ahmed.calling.second}; have you declared this activity in your AndroidManifest.xml? 
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1541) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416) 
     at android.app.Activity.startActivityForResult(Activity.java:3389) 
     at android.app.Activity.startActivityForResult(Activity.java:3350) 
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:748) 
     at android.app.Activity.startActivity(Activity.java:3562) 
     at android.app.Activity.startActivity(Activity.java:3528) 
     at com.example.ahmed.calling.MainActivity$1.onClick(MainActivity.java:25) 
     at android.view.View.performClick(View.java:4106) 
     at android.view.View$PerformClick.run(View.java:17052) 
     at android.os.Handler.handleCallback(Handler.java:615) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:5059) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 

清單文件是

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.ahmed.calling" > 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 
+0

發表您的清單請 –

+0

此外,你應該張貼在logcat的錯誤消息,異常和堆棧跟蹤。這將有助於確定問題。 –

+0

'我的意圖出現錯誤'。好。但是你不認爲這可能有助於更具體地瞭解這個錯誤嗎? – njzk2

回答

0

我已經在你的代碼發現三個邏輯錯誤/問題,但爲是logcat的某些輸出需要。

  • 在你MainActivity類,你不需要改變視圖分層結構,該onClick回調。即在該方法中刪除setContentView(R.layout.my_layout2);

  • 你不應該在一個Activity中使用getApplicationContext()來啓動另一個Activity。您應該使用對當前「活動」的引用。

    Intent intent = new Intent(MainActivity.this, second.class); 
    startActivity(intent); 
    
  • 此外,還有沒有必要finish當你啓動另一個與你的某個活動。它們將由Android本身處理。

更新#1:

你logcat的說:

無法找到明確的活動類{com.example.ahmed.calling/com.example.ahmed.calling。第二};你有沒有在你的AndroidManifest.xml中聲明這個活動?

這意味着您應該首先在AndroidManifest.xml中聲明您的活動,然後才能啓動它們。

更新#2:

你的最終清單文件應該是這樣的:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

    <!-- ADD THE FOLLOWING LINE --> 
    <activity android:name=".second"/> 
</application> 
+0

這些應該都是評論。這不能回答問題或解決OP的問題。 –

+0

@abforce我已經做了所有這些事情,但同樣的錯誤發生 現在我已經提交我的logcat友善地引導我進一步感謝 –

+0

@EbadAhmed好吧,logcat說你還沒有在清單文件中聲明你的活動。只需在AndroidManifest.xml中聲明它們,就是這樣。 –

0

正如我懷疑,你的第二個活動是不是在清單中聲明。您需要添加:

<activity android:name=".second"/> 
+0

謝謝你這麼多,現在正在工作 –

相關問題