我试图根据用户在我的列表视图上单击的项目来调用不同的活动,但是由于某些原因,只有第一个元素在起作用。
这是列表视图的代码:

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中的代码块无法运行,我尝试将案例0中的案例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时,代码无法运行,有什么想法吗?非常感谢所有帮助。

最佳答案

您到底为什么要捕获ActivityNotFoundException?如果我不得不冒险猜测,那可能是您忘记在清单中注册WallActivity而引发了异常。

无论如何,如果确实捕获到异常,则在Android中,如果要查看堆栈跟踪,则应将异常写入Log而不是e.printStackTrace()

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

08-17 11:44