1

ユーザーがリストビューでクリックしたアイテムに応じてさまざまなアクティビティを呼び出そうとしていますが、何らかの理由で最初の要素のみが機能しています。リストビューのコードは次のとおりです。

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は基本的に単なるWebビューです。

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をクリックすると、コードが実行されません。アイデアはありますか?すべての助けは大歓迎です。

4

1 に答える 1

1

一体なぜActivityNotFoundExceptionをキャッチしているのですか?推測を危険にさらす必要がある場合は、マニフェストにWallActivityを登録するのを忘れており、その例外がスローされている可能性があります。

いずれにせよ、例外をキャッチした場合、Androidでは、スタックトレースを表示したい場合は、代わりにログに例外を書き込む必要がありますe.printStackTrace()

Log.e(getClass().getName(), "OMG ERROR ! :)", e); 
于 2012-04-08T00:52:22.647 に答える