2014-02-20 32 views
1

我剛剛創建了滑動菜單,但是當我按下菜單中的項目時,他們沒有打開我設置的活動。這是我對onItemClick方法的代碼:如何從滑動菜單中點擊項目點擊新活動?

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // Highlight the selected item, update the title, and close the drawer 
    // update selected item and title, then close the drawer 
    mDrawerList.setItemChecked(position, true);   
    //You should reset item counter 
    mDrawer.closeDrawer(mDrawerList); 
    if (position == 1) { 
     Intent intent = new Intent(MainActivity.this, PrimActivitate.class); 
     startActivity(intent); 
     mDrawer.closeDrawers(); 
     if (position == 2) { 
      Intent intent2 = new Intent(MainActivity.this, Profesori.class); 
      startActivity(intent2); 
      mDrawer.closeDrawers(); 
     } 

的問題是:當我按下第一個項目,它崩潰的應用程序,當我按下第二個它沒有做任何事情..

編輯:

02-20 15:27:43.991: E/AndroidRuntime(1278): FATAL EXCEPTION: main 
02-20 15:27:43.991: E/AndroidRuntime(1278): Process: com.orar.cngcnasaud, PID: 1278 
02-20 15:27:43.991: E/AndroidRuntime(1278): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.orar.cngcnasaud/com.orar.cngcnasaud.PrimActivitate}; have you declared this activity in your AndroidManifest.xml? 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Activity.startActivityForResult(Activity.java:3424) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Activity.startActivityForResult(Activity.java:3385) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Activity.startActivity(Activity.java:3627) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.Activity.startActivity(Activity.java:3595) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at com.orar.cngcnasaud.MainActivity$DrawerItemClickListener.onItemClick(MainActivity.java:179) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.widget.AdapterView.performItemClick(AdapterView.java:299) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.widget.AbsListView.performItemClick(AbsListView.java:1113) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.widget.AbsListView$3.run(AbsListView.java:3638) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.os.Handler.handleCallback(Handler.java:733) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.os.Handler.dispatchMessage(Handler.java:95) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.os.Looper.loop(Looper.java:136) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at java.lang.reflect.Method.invoke(Method.java:515) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
02-20 15:27:43.991: E/AndroidRuntime(1278):  at dalvik.system.NativeStart.main(Native Method) 
+0

請顯示錯誤的logcat。 – Melquiades

+0

當按第二個鍵時,它不會執行任何操作,因爲開始第二個活動的代碼是INSIDE第一個條件。 – Melquiades

+0

我編輯了第一篇文章! – Ezekiel

回答

1

這從來不去位置== 2,因爲我看到的,如果接近(位置== 1)如果之前(位置== 2),嘗試:

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    mDrawerList.setItemChecked(position, true);   
    mDrawer.closeDrawer(mDrawerList); 
    if (position == 1) { 
     Intent intent = new Intent(MainActivity.this, PrimActivitate.class); 
     MainActivity.this.startActivity(intent); 
     mDrawer.closeDrawers(); 
     } 
    if (position == 2) { 
     Intent intent2 = new Intent(MainActivity.this, Profesori.class); 
     MainActivity.this.startActivity(intent2); 
     mDrawer.closeDrawers(); 
     } 

} 

關於你忘了加上崩潰AndroidManifest.xml

<activity android:label="@string/app_name" android:name="com.orar.cngcnasaud.PrimActivitate"/> 
<activity android:label="@string/app_name" android:name="com.orar.cngcnasaud.Profesori"/> 
+0

同樣的事情..同名的錯誤。 – Ezekiel

+0

PrimActivitate和Profesori是否擴展活動?或者那些在diffirent軟件包中,你必須在你的AndroidManifest中編輯所有軟件包名稱編輯 – Smile2Life

+0

是的,他們確實..我做到了。非常感謝 ! – Ezekiel

1

當您按下第二項onItemClick()時什麼都不做,因爲 if(position == 2) 在 if(position == 1)之內。

你可以發佈崩潰堆棧跟蹤嗎?

+0

請使用上述對OP的迴應的評論或修改您的回答。 – Melquiades

+0

我無法在第一時間添加評論,因爲我沒有50的聲望:-(。無論如何感謝您的建議 – karthikk

+0

只要記住將來,低質量的答案越來越downvotes :)如果你想澄清或來自OP的額外信息,請使用評論。祝你好運 – Melquiades

1

由於您的logcat建議,您尚未在清單中聲明您的PrimActivitate。這些添加到您的AndroidManifest:

<activity android:name=".PrimActivitate"></activity> 

添加第二個,以及如果不是有:

<activity android:name=".Profesori"></activity> 

接下來,以外的第一移動你的第二個條件,這樣既您的情況可以處理:

if (position == 1) { 
    Intent intent = new Intent(MainActivity.this, PrimActivitate.class); 
    startActivity(intent); 
    mDrawer.closeDrawers(); 
} 
else if (position == 2) { 
    Intent intent2 = new Intent(MainActivity.this, Profesori.class); 
    startActivity(intent2); 
    mDrawer.closeDrawers(); 
} 
+0

它的工作..你是最好的球員。非常感謝 ! – Ezekiel

相關問題