2012-04-08 70 views
1

我正在嘗試根據用戶在我的列表視圖中單擊的項目調用不同的活動,但出於某種原因只有第一個元素正在工作。 這裏是爲ListView代碼:由於某些原因的代碼的情況下,1塊不運行從listview調用不同的活動?

options = (ListView) findViewById(R.id.lstOptions); 
ArrayAdapter<String> OPTADAP= new ArrayAdapter<String>(this,R.layout.optionslayout,OPTIONS); 
options.setAdapter(OPTADAP); 

options.setOnItemClickListener(new OnItemClickListener(){ 
    Intent i; 
    @Override 
    public void onItemClick(AdapterView<?> parent, final View view,int pos, long id) { 
    switch(pos){ 
    case 0: 
     i = new Intent(view.getContext(),Posting.class); 
     i.putExtra("usrid", usrdata.get("id")); 
     i.putExtra("usrname", usrdata.get("name")); 
     try{ 
     startActivity(i); 
     } catch(ActivityNotFoundException e) { 
     e.printStackTrace(); 
     } 
     break; 
    case 1: 
     i = new Intent(view.getContext(),WallActivity.class); 
     try{ 
     startActivity(i); 
     }catch(ActivityNotFoundException e){ 
     e.printStackTrace(); 
     } 
     break; 
    default: 
     Toast.makeText(view.getContext(), "default", 10).show(); 
    }     
    } 
} 

,我試圖把代碼的情況下0的情況下,1和它的工作,所以它必須是有毛病塊:

i = new Intent(view.getContext(),WallActivity.class); 
try{ 
    startActivity(i); 
}catch(ActivityNotFoundException e){ 
    e.printStackTrace(); 
} 

的WallActivity基本上是一個網頁視圖:

public class WallActivity extends Activity{ 

WebView wv; 
private final String wurl = "URL HERE"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.wallactivity); 
    wv = (WebView) findViewById(R.id.webview); 

    wv.getSettings().setJavaScriptEnabled(true); 
    wv.loadUrl(wurl); 
    } 
} 

當我在第1項點擊代碼不能運行,任何想法?所有的幫助非常感謝。

+0

「出於某種原因塊情況1中的代碼「您是否嘗試使用Eclipse調試器或添加日誌記錄代碼以查明發生了什麼? – 2013-07-17 20:03:01

回答

1

爲什麼你要捕捉ActivityNotFoundException?如果我不得不冒險猜測,那麼你會忘記在你的清單中註冊WallActivity,並拋出異常。

在任何情況下,如果你捕獲異常,在Android中,如果你想看到的堆棧跟蹤,你應該例外寫入日誌,而不是e.printStackTrace()

Log.e(getClass().getName(), "OMG ERROR ! :)", e); 
+0

哇,我覺得被羞恥的感覺所擁抱,就像你說的我忘記在我的清單文件中註冊我的活動,非常感謝你!如果我沒有弄錯,如果我沒有用try和catch包圍startActivity,但是現在已經不存在了,那麼以前有錯誤信息。呃很奇怪。 – Slacker616 2012-04-08 01:00:12

+2

正確...錯誤消息告訴你,你忘記了在清單中註冊你的活動:) Android從不拋出異常只是爲了好玩,所以確保你確定你可以忽略它試圖告訴你的任何錯誤。 – JRaymond 2012-04-08 02:27:38

+0

@ Slacker616錯誤消息應該是代碼中某些內容不正確的第一個標誌。通過壓制這個錯誤,你正在用毛巾敷上一個皮膚傷口。它不會阻止壞疽的侵入。 – 2013-07-17 20:05:32