我从另一个活动类调用一个活动类的方法。在该方法中,我调用setContentView()传递另一个xml文件(不同于我在我的第一个类(调用类)中显示的xml文件.So while调用setContentView(),我得到null pointerException。 请在下面找到我的代码: 调用类
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
DisplayMessageActivity d=new DisplayMessageActivity();
try {
Toast.makeText(CallWebserviceActivity.this, "position"+position, Toast.LENGTH_SHORT).show();
d.showmessage(arrays, position,CallWebserviceActivity.this);
} catch (Exception e) {
e.printStackTrace();
}
}
});
调用setContentView()的新类:
公共类DisplayMessageActivity扩展了Activity {
public void showmessage(ArrayList<JSONObject> arrays,int position,Context context) throws Exception {
RelativeLayout relatelayout;
setContentView(R.layout.showdetails);
Toast.makeText(DisplayMessageActivity.this, "DisplayMessageActivity", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:2)
主要问题是DisplayMessageActivity d=new DisplayMessageActivity();
。活动不应由您创建,而是由使用Intent的框架创建,其中包含描述目标组件和startActivity(Intent)的信息。另外,通常在onCreate()中设置内容视图。
看起来您可能会尝试按照此示例进行操作? http://developer.android.com/training/basics/firstapp/starting-activity.html