2014-03-27 67 views
0

問題是,當我點擊ListView時,應用程序剛剛關閉。我使用BaseAdapter。我需要打開一個新的Acitivty來顯示詳細的信息,並且這個問題阻止了我。 如果我刪除此代碼,它不會關閉。請幫助解決這個問題,或者我可能做錯了什麼。Java Android - 遇到新活動時遇到問題

Intent in = new Intent(getApplicationContext(), 
       OnClickActivity.class); 
     in.putExtra(TAG_RATING, rating2); 
     in.putExtra(TAG_USER, name2); 
     in.putExtra(TAG_DESC, desc2); 
     in.putExtra(TAG_DATE, date2); 
     in.putExtra(TAG_ID, postID); 
     startActivity(in); 

全碼:

public class AsyncTaskParseJson extends AsyncTask<String, String, String> { 

    final String TAG = "AsyncTaskParseJson.java"; 
    JSONArray dataJsonArr = null; 

    @Override 
    protected void onPreExecute() {} 

    @Override 
    protected String doInBackground(String... arg0) { 

     try { 


      JsonParser jParser = new JsonParser(); 
      JSONObject json = jParser.getJSONFromUrl(URL); 
      dataJsonArr = json.getJSONArray("data"); 

      for (int i = 0; i < dataJsonArr.length(); i++) { 

       JSONObject c = dataJsonArr.getJSONObject(i); 

       String nickname = c.getString("nickname"); 
       String description = c.getString("description"); 
       products.add(new ItemInfo(nickname, description)); 

      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(String strFromDoInBg) 
    { 
     SetAdapter(); 
    } 
} 

public void SetAdapter() 
{ 
    boxAdapter = new BoxAdapter(this, products); 
    ListView lvMain = (ListView) findViewById(R.id.list); 
    lvMain.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) 
     { 
      ListView lvMain = (ListView) findViewById(R.id.list); 
      int pos = lvMain.getPositionForView(view); 
      test(pos); 
     } 
    }); 
    lvMain.setAdapter(boxAdapter); 
} 

public void test(int position) 
{ 
    ItemInfo p = boxAdapter.getItem(position); 

    String name2 = p.username; 
    String desc2 = p.description; 

    Intent in = new Intent(getApplicationContext(), 
      OnClickActivity.class); 
    in.putExtra(TAG_USER, name2); 
    in.putExtra(TAG_DESC, desc2); 
    startActivity(in); 
} 

logcat的日誌:

03-27 21:05:43.923: W/dalvikvm(2496): threadid=1: thread exiting with uncaught exception (group=0x4157dba8) 
03-27 21:05:43.923: E/AndroidRuntime(2496): FATAL EXCEPTION: main 
03-27 21:05:43.923: E/AndroidRuntime(2496): Process: com.example.warapp, PID: 2496 
03-27 21:05:43.923: E/AndroidRuntime(2496): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.warapp/com.example.warapp.OnClickActivity}; have you declared this activity in your AndroidManifest.xml? 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Activity.startActivityForResult(Activity.java:3424) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Activity.startActivityForResult(Activity.java:3385) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Activity.startActivity(Activity.java:3627) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.Activity.startActivity(Activity.java:3595) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at com.example.warapp.MainActivity.test(MainActivity.java:125) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at com.example.warapp.MainActivity$1.onItemClick(MainActivity.java:102) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.widget.AdapterView.performItemClick(AdapterView.java:299) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.widget.AbsListView.performItemClick(AbsListView.java:1113) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.widget.AbsListView$3.run(AbsListView.java:3638) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.os.Handler.handleCallback(Handler.java:733) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.os.Handler.dispatchMessage(Handler.java:95) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.os.Looper.loop(Looper.java:136) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at java.lang.reflect.Method.invoke(Method.java:515) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
03-27 21:05:43.923: E/AndroidRuntime(2496):  at dalvik.system.NativeStart.main(Native Method) 
+0

發佈您的logcat。 – codeMagic

+0

準備好了,更新頁面 – user3158925

+0

'android.content.ActivityNotFoundException:無法找到顯式活動類{com.example.warapp/com.example.warapp.OnClickActivity};你是否在你的AndroidManifest.xml文件中聲明瞭這個活動?'看起來'Activity'沒有在'manifest.xml'中正確聲明。 – codeMagic

回答

0

檢查,看看是否添加OnClickActivity到AndroidManifest.xml中。

0
> Unable to find explicit activity class {com.example.warapp/com.example.warapp.OnClickActivity}; have you declared this activity in your AndroidManifest.xml? 

檢查你的Manifest.xml,您的IDE可能會忘了聲明它在你的Manifest.xml,或者你的帖子以錯誤的方式重新命名。

這裏的應用程序標籤中在AndroidManifest.xml我宣佈活動之一:

<activity 
android:name="CameraActivity" 
android:configChanges="orientation" 
android:screenOrientation="portrait" 
android:label="CameraActivity"/>