无法启动活动ComponentInfo:java.lang.NullPointerException [英] Unable to start activity ComponentInfo: java.lang.NullPointerException

查看:144
本文介绍了无法启动活动ComponentInfo:java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

异常

无法启动活动ComponentInfo {com.scytec。 datamobile.vd.gui.android/com.scytec.datamobile.vd.gui.android.SelectedList}:java.lang.NullPointerException ..
我只想显示复选框列表视图,每次检查都显示已检查,只是但我不知道为什么这会给我一个例外。

Unable to start activity ComponentInfo{com.scytec.datamobile.vd.gui.android/com.scytec.datamobile.vd.gui.android.SelectedList}: java.lang.NullPointerException.. I just want to show checkbox list view and on every check it display "checked", simply but i don't know why this gives me an exception.

public class SelectedList extends Activity implements IObserver{

        private ListView machine_listview;
        ArrayAdapter<String> adapter;
        ArrayList<String> arrayListofMachines;
        ArrayList<String> arrayListofMachineNumbers;
        Vector<MDCMachineStatus> machineStatus_vector;
        Handler handler;

        private static int oldPosition = 0;
        private Boolean firstClick = true;




        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.machinelistview);

            machine_listview = (ListView) findViewById(R.id.machine_listview);
            machine_listview.setFastScrollEnabled(true);

            MachineStatusSingleton.Register(this);

            getData();

            adapter = new ArrayAdapter<String>(SelectedList.this, R.layout.selectedlist,R.id.text1, arrayListofMachines);

            machine_listview.setAdapter(adapter);

            machine_listview.setSelection(oldPosition);


            CheckBox chk=(CheckBox)findViewById(R.id.check);
            chk.setOnCheckedChangeListener(new OnCheckedChangeListener()
            {

       public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
        TextView txt=(TextView)findViewById(R.id.xtra);
        if (arg1)
            Log.d("", "abul, checked") ;
        else
             Log.d("", "abul, not checked") ;

       }

            }
            );


            machine_listview.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                        long arg3) {
                    // TODO Auto-generated method stub
                    oldPosition = position;
                    MachineStatusSingleton.setMachineNumber(arrayListofMachineNumbers.get(position));
                    SelectedList.this.finish();


                }

            });


            handler = new Handler(){
                public void handleMessage(android.os.Message msg) {


                    machine_listview.setAdapter(adapter);
                    adapter.notifyDataSetChanged();

                };
            };






        }

        public void Update(ISubject arg0) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onDestroy()
        {
            super.onDestroy();

            MachineStatusSingleton.Unregister(this);
        }

        private void getData(){
            machineStatus_vector = MachineStatusSingleton.GetData();
            arrayListofMachines = new ArrayList<String>();
            arrayListofMachineNumbers = new ArrayList<String>();
            for(MDCMachineStatus temp: machineStatus_vector){
                arrayListofMachines.add(temp.toString());
                arrayListofMachineNumbers.add(temp.getNumber());
            }

            Collections.sort(arrayListofMachines);
            Collections.sort(arrayListofMachineNumbers);

        }


        private void updateData(){
            getData();

            handler.sendEmptyMessage(0);
            adapter.notifyDataSetChanged();
            int index = machine_listview.getFirstVisiblePosition();
            View v = machine_listview.getChildAt(0);
            int top = (v == null) ? 0 : v.getTop();

            // ...

            // restore
            machine_listview.setSelectionFromTop(index, top);
        }


    }


推荐答案

我们的应用运行得非常好,突然遇到 NullPointerException 无法启动活动等错误。

We run our app very well and suddenly we encounter NullPointerException or Unable to start activity etc errors.

基本上 NullPointerException 无法启动活动

发生这种情况的时间是:


  1. 我们更改与该活动相关的布局的任何xml值

  1. We change any xml values of layout related to this Activity

如果我们在Acivity中未正确映射xml UI,

If we do not map xml UI's properly in our Acivity

尝试访问位于另一个布局文件中的UI。

Try to access UI which is in another layout file.

解决方案:


  1. 首先交叉检查所有映射的元素

  1. First Cross check all the mapped elements

给出唯一的命名

这篇关于无法启动活动ComponentInfo:java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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