android.widget.ArrayAdapter.init(ArrayAdapter.java)上的java.lang.NullPointerException
lang.NullPointerException android.widget.ArrayAdapter.init(ArrayAdapter.java) 我只是将Arraylist值添加到customAdapter类中,并将这些值设置到listview中 请参阅下面的代码帮助我 谢谢android.widget.ArrayAdapter.init(ArrayAdapter.java)上的java.lang.NullPointerException,android,android-asynctask,android-arrayadapter,Android,Android Asynctask,Android Arrayadapter,lang.NullPointerException android.widget.ArrayAdapter.init(ArrayAdapter.java) 我只是将Arraylist值添加到customAdapter类中,并将这些值设置到listview中 请参阅下面的代码帮助我 谢谢 private void fetchCallLogsDetails(String selectedId) { this.SelectedLogId = selectedId; ne
private void fetchCallLogsDetails(String selectedId) {
this.SelectedLogId = selectedId;
new FetchCallLogDetailsAsyncTask() {
protected void onPostExecute(Boolean result) {
if (mCallLogModel.getmPhoto() != null) {
mCallLogPhoto.setImageBitmap(mCallLogModel.getmPhoto());
}
mCallLogDetailName.setText(mCallLogModel.getmName());
mCallLogDetailNumber.setText(mCallLogModel.getmNumber());
mCallLogDetailName.setTextSize(12);
mCallLogDetailNumber.setTextSize(10);
mLogAuditUtilList = mCallLogModel.getmLogAuditUtilList();
if (mLogAuditUtilList != null) {
mCallLogAuditArrayAdapter = new CallLogAuditArrayAdapter(
getActivity(), R.id.details_audit_log_list,
mLogAuditUtilList);
mAuditListView.setAdapter(mCallLogAuditArrayAdapter);
}
};
}.execute("");
}
class FetchCallLogDetailsAsyncTask extends
AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
// reading call logs from contentReslover
mCallLogUtil = CallLogUtil.newInstance(mconContentResolver);
mCallLogModel = mCallLogUtil.selectedLogDetails(SelectedLogId);
return false;
}
}
customeAdapter class
-------------------------
public class CallLogAuditArrayAdapter extends ArrayAdapter<LogAuditUtil> {
private LayoutInflater minflater;
private ImageView mCallTypeImage;
public CallLogAuditArrayAdapter(Context context, int textViewResourceId,
List<LogAuditUtil> objects) {
super(context, textViewResourceId, objects);
minflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final LogAuditUtil mLogAuditUtil = this.getItem(position);
convertView = minflater.inflate(R.layout.call_logs_details_list_view,
null);
TextView mCallType = (TextView) convertView
.findViewById(R.id.call_logs_details_list_view_type_id);
TextView mDetailsDate = (TextView) convertView
.findViewById(R.id.call_logs_details_list_view_date_id);
mCallTypeImage = (ImageView) convertView
.findViewById(R.id.call_logs_details_list_view_type_image_id);
TextView mCallDuration = (TextView) convertView
.findViewById(R.id.call_logs_details_list_view_call_duration_id);
mCallType.setTextSize(12);
mDetailsDate.setTextSize(10);
mCallDuration.setTextSize(8);
switch (Integer.parseInt(mLogAuditUtil.getmAuditType())) {
case 1:
mCallType.setText(R.string.text_incoming_call);
mCallTypeImage.setImageResource(R.drawable.incoming_call);
break;
case 2:
mCallTypeImage.setImageResource(R.drawable.outgoing_call);
mCallType.setText(R.string.text_outgoing_call);
break;
case 3:
mCallTypeImage.setImageResource(R.drawable.missed_call);
mCallType.setText(R.string.text_missed_call);
break;
}
mDetailsDate.setText(mLogAuditUtil.getmAuditDate());
mCallDuration.setText(mLogAuditUtil.getmAuditDuration());
return convertView;
}
}
private void fetchCallLogsDetails(字符串selectedId){
this.SelectedLogId=selectedId;
新的FetchCallLogDetailsAsyncTask(){
受保护的void onPostExecute(布尔结果){
if(mCallLogModel.getmPhoto()!=null){
mCallLogPhoto.setImageBitmap(mCallLogModel.getmPhoto());
}
mCallLogDetailName.setText(mCallLogModel.getmName());
mCallLogDetailNumber.setText(mCallLogModel.getmNumber());
mCallLogDetailName.setTextSize(12);
mCallLogDetailNumber.setTextSize(10);
mLogAuditUtilList=mCallLogModel.getmLogAuditUtilList();
如果(mLogAuditUtilList!=null){
mCallLogAuditArrayAdapter=new CallLogAuditArrayAdapter(
getActivity(),R.id.details\u audit\u log\u list,
姆洛加杜塔利斯特);
setAdapter(mCallLogAuditArrayAdapter);
}
};
}.执行(“”);
}
类FetchCallLogDetailsSyncTask扩展
异步任务{
@凌驾
受保护的布尔doInBackground(字符串…参数){
//从contentReslover读取呼叫日志
mCallLogUtil=CallLogUtil.newInstance(mconContentResolver);
mCallLogModel=mCallLogUtil.selectedLogDetails(SelectedLogId);
返回false;
}
}
自定义适配器类
-------------------------
公共类CallLogAuditArrayAdapter扩展了ArrayAdapter{
私人停车场;
私有图像查看mCallTypeImage;
public CallLogAuditArrayAdapter(上下文上下文,int textViewResourceId,
列出对象){
超级(上下文、textViewResourceId、对象);
minflater=LayoutInflater.from(上下文);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
最终LogAuditUtil mLogAuditUtil=此.getItem(位置);
convertView=minflater.充气(R.layout.call\u logs\u details\u list\u view,
无效);
TextView mCallType=(TextView)convertView
.findViewById(R.id.call\u logs\u details\u list\u view\u type\u id);
TextView mDetailsDate=(TextView)convertView
.findViewById(R.id.call\u logs\u details\u list\u view\u date\u id);
mCallTypeImage=(ImageView)convertView
.findViewById(R.id.call\u logs\u details\u list\u view\u type\u image\u id);
TextView mCallDuration=(TextView)convertView
.findViewById(R.id.call\u logs\u details\u list\u view\u call\u duration\u id);
mCallType.setTextSize(12);
mDetailsDate.setTextSize(10);
mCallDuration.setTextSize(8);
开关(Integer.parseInt(mLogAuditUtil.getmAuditType()){
案例1:
mCallType.setText(R.string.text\u传入呼叫);
mCallTypeImage.setImageResource(R.drawable.incoming_调用);
打破
案例2:
mCallTypeImage.setImageResource(R.drawable.outgoing_call);
mCallType.setText(R.string.text_outgoing_call);
打破
案例3:
mCallTypeImage.setImageResource(R.drawable.missed_调用);
mCallType.setText(R.string.text_missed_call);
打破
}
mDetailsDate.setText(mLogAuditUtil.getmAuditDate());
mCallDuration.setText(mLogAuditUtil.getmAuditDuration());
返回视图;
}
}
当我运行这段代码时,我在catlog中得到了blow错误
E/AndroidRuntime(3047): FATAL EXCEPTION: main
06-07 19:58:56.257: E/AndroidRuntime(3047): java.lang.NullPointerException
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
06-07 19:58:56.257: E/AndroidRuntime(3047): at com.movirtu.contactsUtil.CallLogsArrayAdapter.<init>(CallLogsArrayAdapter.java:30)
06-07 19:58:56.257: E/AndroidRuntime(3047): at com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:88)
06-07 19:58:56.257: E/AndroidRuntime(3047): at com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:1)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.os.AsyncTask.finish(AsyncTask.java:602)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.os.AsyncTask.access$600(AsyncTask.java:156)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.os.Looper.loop(Looper.java:137)
06-07 19:58:56.257: E/AndroidRuntime(3047): at android.app.ActivityThread.main(ActivityThread.java:4340)
06-07 19:58:56.257: E/AndroidRuntime(3047): at java.lang.reflect.Method.invokeNative(Native Method)
06-07 19:58:56.257: E/AndroidRuntime(3047): at java.lang.reflect.Method.invoke(Method.java:511)
06-07 19:58:56.257: E/AndroidRuntime(3047): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-07 19:58:56.257: E/AndroidRuntime(3047): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-07 19:58:56.257: E/AndroidRuntime(3047): at dalvik.system.NativeStart.main(Native Method)
06-07 19:58:58.917: I/Process(3047): Sending signal. PID: 3047 SIG: 9
E/AndroidRuntime(3047):致命异常:主
06-07 19:58:56.257:E/AndroidRuntime(3047):java.lang.NullPointerException
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.widget.ArrayAdapter.init(ArrayAdapter.java:310)上
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.widget.ArrayAdapter.(ArrayAdapter.java:153)
06-07 19:58:56.257:E/AndroidRuntime(3047):在com.movirtu.contactsUtil.CallLogsArrayAdapter.(CallLogsArrayAdapter.java:30)
06-07 19:58:56.257:E/AndroidRuntime(3047):在com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:88)
06-07 19:58:56.257:E/AndroidRuntime(3047):在com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:1)
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.os.AsyncTask.finish(AsyncTask.java:602)上
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.os.AsyncTask.access$600(AsyncTask.java:156)
06-07 19:58:56.257:E/AndroidRuntime(3047):位于android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.os.Handler.dispatchMessage(Handler.java:99)上
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.os.Looper.loop(Looper.java:137)
06-07 19:58:56.257:E/AndroidRuntime(3047):在android.app.ActivityThread.main(ActivityThread.java:4340)
06-07 19:58:56.257:E/AndroidRuntime(3047):位于java.lang.reflect.Method.Invokenactive(本机方法)
06-07 19:58:56.257:E/AndroidRuntime(3047):在java.lang.reflect.Method.invoke(Method.java:511)
06-07 19:58:56.257:E/AndroidRuntime(3047):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-07 19:58:56.257:E/AndroidRuntime(3047):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-07 19:58:56.257:E/AndroidRuntime(3047):在dalvik.system.NativeStart.main(本机方法)
06-07 19:58:58.917:I/进程(3047):发送信号。PID:3047信号:9
此问题是由于在创建适配器时getActivity()返回null引起的:
new CallLogAuditArrayAdapter(getActivity(), R.id.details_audit_log_list, mLogAuditUtilList);