2012-04-08 11 views
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(); 
    }     
    } 
} 

ケース1内のコードのブロックが実行されない何らかの理由で、私はケース1ケース0からのコードを入れてみました、それが働いていたので、それがなければなりませんこのブロックと間違って何か:

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

WallActivityは、基本的にはWebViewのである:

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デバッガを使用したり、ログコードを追加して何が起きているのか調べてみましたか? –

答えて

1

なぜあなたはActivityNotFoundExceptionをキャッチしていますか?私が推測を危険にさらしていなければならない場合は、あなたのマニフェストにWallActivityを登録するのを忘れていて、その例外がスローされているはずです。あなたは例外をキャッチ行う場合は、スタックトレースを表示する場合はどのような場合には

は、Androidの中で、あなたには、いくつかの理由のブロックのために」ではなくe.printStackTrace()

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

WOW、私はあなたのマニフェストファイルに自分の活動を登録することを忘れたと言ったように、恥の気持ちに抱かれているように感じます。もし私が間違っていないのであれば、startActivityをtryとcatchで囲まなければエラーメッセージが出ていましたが、今はなくなってしまいました。 – Slacker616

+2

右...エラーメッセージは、あなたがマニフェストにあなたのアクティビティを登録することを忘れていたことを伝えていました:) Androidは、単に楽しいために例外をスローしないので、あなたが何についてエラーを無視しようとしているか確かめてください。 – JRaymond

+0

@ Slacker616エラーメッセージは、コード内の何かが正しくない最初の兆候でなければなりません。エラーをスケルチすることによって、あなたはタオルで肉の傷を覆います。それは壊滅的な状態になるのを妨げるものではありません。 –

関連する問題