Java oncreatecontextmenu给出空指针错误
我想做的是-Java oncreatecontextmenu给出空指针错误,java,android,android-activity,nullpointerexception,android-arrayadapter,Java,Android,Android Activity,Nullpointerexception,Android Arrayadapter,我想做的是- 使用asynctask向php发送请求 从php接收数据并发送回活动 使用json数据使用适配器填充listview 单击列表视图时项将显示上下文菜单 但是我得到了以下错误!请帮忙 contactActivity.java public class contactActivity extends Activity{ private List<CNList> imlist = new ArrayList<CNList>(); privat
- 使用asynctask向php发送请求
- 从
接收数据并发送回活动php
- 使用
数据使用适配器填充json
listview
- 单击
项将显示列表视图时
上下文菜单
public class contactActivity extends Activity{
private List<CNList> imlist = new ArrayList<CNList>();
private ListView listView;
private contactAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact);
getLayoutInflater().inflate(R.layout.contact, null);
Intent intent = getIntent();
listView = (ListView)findViewById(R.id.listnum);
adapter = new contactAdapter(this, imlist);
listView.setAdapter(adapter);
registerForContextMenu(listView);
new contactPHP(this).execute();
}
public void contactPhpResponse(JSONArray json,ArrayList<String> numbersList,ArrayList<String> nameList,ArrayList<Uri> imageList){
for (int i = 0; i < json.length(); i++) {
//some jobs
}
adapter.notifyDataSetChanged();
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
CNList obj = (CNList)v.getTag();
int subs = obj.getsubstance();
menu.setHeaderTitle(obj.getname());
menu.add(0, v.getId(), 0, "Add");
menu.add(0, v.getId(), 0, "Block");
}
}
LOGCAT
03-04 17:15:40.043: E/AndroidRuntime(10010): FATAL EXCEPTION: main
03-04 17:15:40.043: E/AndroidRuntime(10010): Process: com.example.soc, PID: 10010
03-04 17:15:40.043: E/AndroidRuntime(10010): java.lang.StackOverflowError
03-04 17:15:40.043: E/AndroidRuntime(10010): at
03-04 17:24:18.193: E/AndroidRuntime(10798): FATAL EXCEPTION: main
03-04 17:24:18.193: E/AndroidRuntime(10798): Process: com.example.soc, PID: 10798
03-04 17:24:18.193: E/AndroidRuntime(10798): java.lang.NullPointerException
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:98)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.View.createContextMenu(View.java:8356)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.view.menu.ContextMenuBuilder.show(ContextMenuBuilder.java:81)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.policy.impl.PhoneWindow$DecorView.showContextMenuForChild(PhoneWindow.java:2344)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.widget.AbsListView.performLongPress(AbsListView.java:2977)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:2921)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Handler.handleCallback(Handler.java:733)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Handler.dispatchMessage(Handler.java:95)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Looper.loop(Looper.java:136)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.app.ActivityThread.main(ActivityThread.java:5021)
03-04 17:24:18.193: E/AndroidRuntime(10798): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 17:24:18.193: E/AndroidRuntime(10798): at java.lang.reflect.Method.invoke(Method.java:515)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
03-04 17:24:18.193: E/AndroidRuntime(10798): at dalvik.system.NativeStart.main(Native Method)
在埃兰的修复之后
LOGCAT
03-04 17:15:40.043: E/AndroidRuntime(10010): FATAL EXCEPTION: main
03-04 17:15:40.043: E/AndroidRuntime(10010): Process: com.example.soc, PID: 10010
03-04 17:15:40.043: E/AndroidRuntime(10010): java.lang.StackOverflowError
03-04 17:15:40.043: E/AndroidRuntime(10010): at
03-04 17:24:18.193: E/AndroidRuntime(10798): FATAL EXCEPTION: main
03-04 17:24:18.193: E/AndroidRuntime(10798): Process: com.example.soc, PID: 10798
03-04 17:24:18.193: E/AndroidRuntime(10798): java.lang.NullPointerException
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.example.soc.contactActivity.onCreateContextMenu(contactActivity.java:98)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.View.createContextMenu(View.java:8356)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.view.menu.ContextMenuBuilder.show(ContextMenuBuilder.java:81)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.policy.impl.PhoneWindow$DecorView.showContextMenuForChild(PhoneWindow.java:2344)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:658)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.widget.AbsListView.performLongPress(AbsListView.java:2977)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:2921)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Handler.handleCallback(Handler.java:733)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Handler.dispatchMessage(Handler.java:95)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.os.Looper.loop(Looper.java:136)
03-04 17:24:18.193: E/AndroidRuntime(10798): at android.app.ActivityThread.main(ActivityThread.java:5021)
03-04 17:24:18.193: E/AndroidRuntime(10798): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 17:24:18.193: E/AndroidRuntime(10798): at java.lang.reflect.Method.invoke(Method.java:515)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
03-04 17:24:18.193: E/AndroidRuntime(10798): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
03-04 17:24:18.193: E/AndroidRuntime(10798): at dalvik.system.NativeStart.main(Native Method)
cncontactphpresponse()中定义的循环的内的列表和视图标记
使用此registerForContextMenu(ListView)使用上下文菜单注册您的ListView
代码>我已经有@Devill!!在哪一行出现错误?intsubs=obj.getsubstance()在oncreatecontextmenu()
Method中的contactActivity.java
中编码>@Devill检查我的答案。。。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// getting data for the row
CNList m = listItems.get(position);
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null){
if(getItemViewType(position)==0){
convertView = inflater.inflate(R.layout.notavl_cont, null);
}else{
convertView = inflater.inflate(R.layout.avl_cont, null);
}
}
//if (imageLoader == null)
//imageLoader = AppController.getInstance().getImageLoader();
ImageView pp = (ImageView) convertView
.findViewById(R.id.cn_pp);
TextView nme = (TextView) convertView.findViewById(R.id.cn_name);
TextView num = (TextView) convertView.findViewById(R.id.cn_num);
// thumbnail image
//pp.setImageUrl(m.getppUrl(), imageLoader);
if(m.getavl() == 0){
/*Bitmap result = ImageHelper.getRoundedCornerBitmap(m.getppUrl(),80);
pp.setImageBitmap(result);*/
pp.setImageURI(m.getppURI());
}else{
new ImageLoadTask(m.getppUrl(), pp).execute();
}
// content
nme.setText(m.getname());
num.setText(m.getnumber());
convertView.setTag(m);
return convertView;
}