当调用intent时,应用程序崩溃 [英] When intent is call then application is crash

查看:114
本文介绍了当调用intent时,应用程序崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Logcat

Logcat

package info.androidhive.slidingmenu;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
//import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


// Inbox Message Fragment
public class HomeFragment extends Fragment {
	
	ListView listview_inbox;
	CheckBox checkbox;
	ArrayList<Message> sms;
	ArrayList<String> inboxlist;
	public HomeFragment(){}
	
	@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_home, container, false);
        listview_inbox=(ListView) rootView.findViewById(R.id.listview1);
        checkbox=(CheckBox)rootView.findViewById(R.id.checkBox);
    

        sms = new ArrayList<Message>();
        inboxlist = new ArrayList<String>();
        // On this function application crashes.
        populateMessageList();

//        ArrayAdapter<String> inboxadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, inboxlist);
//        listview_inbox.setAdapter(inboxadapter);
       return rootView;
    }


	public void populateMessageList() {
        fetchInboxMessages();
// Here occur the exception.
        if (fetchInboxMessages() != null) {

            listview_inbox.setAdapter(new datalist(getActivity(),sms));



            // to handle click event on listView item
            listview_inbox.setOnItemClickListener(new AdapterView.OnItemClickListener()
            {
                public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3)
                {
                    // when user clicks on ListView Item , onItemClick is called
                    // with position and View of the item which is clicked
                    // we can use the position parameter to get index of clicked item
                    TextView textViewSMSSender=(TextView)v.findViewById(R.id.lblNumber);
                    TextView textViewSMSBody=(TextView)v.findViewById(R.id.lblMsg);
                    TextView textViewSMSDate=(TextView)v.findViewById(R.id.smsdate);
                    textViewSMSSender.getText().toString();
                    textViewSMSBody.getText().toString();
                    textViewSMSDate.getText().toString();


                }
            });





        } else {

            Toast.makeText(getActivity(), "No SMS", Toast.LENGTH_LONG).show();
        }

    }


    /*
    * Using this method to fetch the inbox messages
    */
    public ArrayList<Message> fetchInboxMessages() {



        //////////////////////
        Uri muriSms = Uri.parse("content://sms/sent");
        Cursor mcursor = getActivity().getContentResolver().query(muriSms,
                new String[]{"_id", "address", "date", "body"}, null, null,null);
        if (mcursor != null) {
            mcursor.moveToFirst();
        }
        if (mcursor != null) {
            while (mcursor.moveToNext()) {

                Message mMessage = new Message();
                mMessage.setmAddress(mcursor.getString(mcursor.getColumnIndex("address")));
                mMessage.setmBody(mcursor.getString(mcursor.getColumnIndex("body")));
                mMessage.setmDate(mcursor.getString(mcursor.getColumnIndex("date")));

                sms.add(mMessage);

            }
        }

        return sms;

    }

    /*
     * Set the Adapter for Listview
     *
     */
    class datalist extends BaseAdapter {

        Context context;
        ArrayList<Message> arrayListsms;
        public datalist(Context context,ArrayList<Message> arrayListsms) {
            // TODO Auto-generated constructor stub
            this.context=context;
            this.arrayListsms=arrayListsms;
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return sms.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @SuppressLint("SimpleDateFormat")
		@Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            LayoutInflater inflator = getActivity().getLayoutInflater();
            View row;
            row = inflator.inflate(R.layout.fragment_home, parent, false);
            //	ImageView img1 = (ImageView) row.findViewById(R.id.imageView1);
            CheckBox checkBox=(CheckBox)row.findViewById(R.id.checkBox);
            final TextView txt1 = (TextView) row.findViewById(R.id.lblMsg);
            final TextView txt2 = (TextView) row.findViewById(R.id.lblNumber);
            final TextView txt3 = (TextView) row.findViewById(R.id.smsdate);
            Long timestamp = Long.parseLong(sms.get(position).getmDate());
            Calendar mcalendar = Calendar.getInstance();
            mcalendar.setTimeInMillis(timestamp);
            SimpleDateFormat mformatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");



                txt1.setText(sms.get(position).getmBody());
                txt2.setText(sms.get(position).getmAddress());
                //+"\n"+mformatter.format(mcalendar.getTime())
                txt3.setText(mformatter.format(mcalendar.getTime()));
//                //"Sent by" +
//
//            if(checkBox.isChecked()) {
//                Toast.makeText(context,"Hel0"+arrayListsms.get(position).getmBody(),Toast.LENGTH_LONG).show();
//            }
            final String msgBody=txt1.getText().toString();
            final String msgAddr=txt2.getText().toString();
            final String msgDate=txt3.getText().toString();


            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) {
                        //  selectedStrings.add(tv.getText().toString());

                        Toast.makeText(context,""+msgBody,Toast.LENGTH_LONG).show();

                        System.out.println("Body" + msgBody);
                        System.out.println("Address" +msgAddr);
                        System.out.println("Date" + msgDate);

                        inboxlist.add(msgBody+msgAddr+msgDate);
//                        inboxlist.add(msgAddr);
//                        inboxlist.add(msgDate);

                        arrayListsms.remove(position);
                        notifyDataSetChanged();

                    }else{
                        //   selectedStrings.remove(tv.getText().toString());
                    }

                }
            });


            return row;
        }

    }
    
}




01-28 17:42:55.055: D/AndroidRuntime(799): Shutting down VM
01-28 17:42:55.055: W/dalvikvm(799): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
01-28 17:42:55.195: E/AndroidRuntime(799): FATAL EXCEPTION: main
01-28 17:42:55.195: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.slidingmenu/info.androidhive.slidingmenu.MainActivity}: java.lang.NullPointerException
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.os.Looper.loop(Looper.java:137)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread.main(ActivityThread.java:5041)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at java.lang.reflect.Method.invoke(Method.java:511)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at dalvik.system.NativeStart.main(Native Method)
01-28 17:42:55.195: E/AndroidRuntime(799): Caused by: java.lang.NullPointerException
01-28 17:42:55.195: E/AndroidRuntime(799): 	at info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at info.androidhive.slidingmenu.HomeFragment.onCreateView(HomeFragment.java:47)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.Fragment.performCreateView(Fragment.java:1695)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.Activity.performStart(Activity.java:5113)
01-28 17:42:55.195: E/AndroidRuntime(799): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
01-28 17:42:55.195: E/AndroidRuntime(799): 	... 11 more

推荐答案

600(ActivityThread.java:141)
01-28 17 :42:55.195:E / AndroidRuntime(799):在android.app.ActivityThread
600(ActivityThread.java:141) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread


H.handleMessage(ActivityThread.java:1234)
01-28 17:42: 55.195:E / AndroidRuntime(799):在android.os.Handler.dispatchMessage(Handler.java:99)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.os.Looper .loop(Looper.java:137)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.ActivityThread.main(ActivityThread.java:5041)
01- 28 17:42:55.195:E / AndroidRuntime(799):at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:42:55.195:E / AndroidRuntime(799):at java .lang.reflect.Method.invoke(Method.java:511)
01-28 17:42:55.195:E / AndroidRuntime(799):at com.android.internal.os.ZygoteInit
H.handleMessage(ActivityThread.java:1234) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Handler.dispatchMessage(Handler.java:99) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Looper.loop(Looper.java:137) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.main(ActivityThread.java:5041) 01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invokeNative(Native Method) 01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invoke(Method.java:511) 01-28 17:42:55.195: E/AndroidRuntime(799): at com.android.internal.os.ZygoteInit


MethodAndArgsCaller.run(ZygoteInit.java:793)
01-28 17:42:55.195:E / AndroidRuntime(799):at dalvik.system.Nat iveStart.main(Native Method)
01-28 17:42:55.195:E / AndroidRuntime(799):引起:java.lang.NullPointerException
01-28 17:42:55.195:E / AndroidRuntime(799):在info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57)
01-28 17:42:55.195:E / AndroidRuntime(799):at info.androidhive.slidingmenu.HomeFragment .onCreateView(HomeFragment.java:47)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.Fragment.performCreateView(Fragment.java:1695)
01- 28 17:42:55.195:E / AndroidRuntime(799):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
01-28 17:42:55。 195:E / AndroidRuntime(799):在android.app.Activity.performStart(Activity.java:5113)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.ActivityThread .performLaunchActivity(ActivityThread.java:2153)
01-28 17:42:55.195:E / AndroidRuntime(799):... 11 more
MethodAndArgsCaller.run(ZygoteInit.java:793) 01-28 17:42:55.195: E/AndroidRuntime(799): at dalvik.system.NativeStart.main(Native Method) 01-28 17:42:55.195: E/AndroidRuntime(799): Caused by: java.lang.NullPointerException 01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57) 01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.onCreateView(HomeFragment.java:47) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Fragment.performCreateView(Fragment.java:1695) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.BackStackRecord.run(BackStackRecord.java:682) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Activity.performStart(Activity.java:5113) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153) 01-28 17:42:55.195: E/AndroidRuntime(799): ... 11 more


这篇关于当调用intent时,应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆