Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法启动活动组件信息{com.example.mark/com.example.mark.BdaySelect}_Java_Android - Fatal编程技术网

Java 无法启动活动组件信息{com.example.mark/com.example.mark.BdaySelect}

Java 无法启动活动组件信息{com.example.mark/com.example.mark.BdaySelect},java,android,Java,Android,我想使用customListView。。“list_row.xml”包含每一行格式…”“bday_select.xml”包含listView。。。。listView中的每一行都包含字符串性别、字符串名称、字符串lastSeen、int评级、int事件、布尔选定值 LogCat 04-09 03:37:38.927: D/AndroidRuntime(2435): Shutting down VM 04-09 03:37:38.927: W/dalvikvm(2435): thre

我想使用customListView。。“list_row.xml”包含每一行格式…”“bday_select.xml”包含listView。。。。listView中的每一行都包含字符串性别、字符串名称、字符串lastSeen、int评级、int事件、布尔选定值

LogCat

        04-09 03:37:38.927: D/AndroidRuntime(2435): Shutting down VM
04-09 03:37:38.927: W/dalvikvm(2435): threadid=1: thread exiting with uncaught exception (group=0xb4af4b90)
04-09 03:37:38.997: E/AndroidRuntime(2435): FATAL EXCEPTION: main
04-09 03:37:38.997: E/AndroidRuntime(2435): Process: com.example.mark, PID: 2435
04-09 03:37:38.997: E/AndroidRuntime(2435): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mark/com.example.mark.BdaySelect}: java.lang.NullPointerException
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.os.Looper.loop(Looper.java:137)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at android.app.ActivityThread.main(ActivityThread.java:4998)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at java.lang.reflect.Method.invokeNative(Native Method)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at java.lang.reflect.Method.invoke(Method.java:515)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at dalvik.system.NativeStart.main(Native Method)
04-09 03:37:38.997: E/AndroidRuntime(2435): Caused by: java.lang.NullPointerException
04-09 03:37:38.997: E/AndroidRuntime(2435):     at com.example.mark.BdaySelect.displayListView(BdaySelect.java:84)
04-09 03:37:38.997: E/AndroidRuntime(2435):     at com.example.mark.BdaySelect.onCreate(BdaySelect.java:50)
bdaySelect.java

public class BdaySelect extends Activity {

    MyCustomAdapter dataAdapter = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Generate list View from ArrayList
        displayListView();

        checkButtonClick();

    }

    private void displayListView() {

        // Array list of countries
        ArrayList<BdaySelectListRow> stateList = new ArrayList<BdaySelectListRow>();

        BdaySelectListRow _BdaySelectListRow = new BdaySelectListRow("Ravi", "Male", "7 Aug",4,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Ravi", "Male", "7 Aug",4,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Div", "Male", "4 Aug",2,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Hari", "Male", "1 Aug",1,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Suu", "Male", "3 Aug",5,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Dhaka", "Male", "5 Aug",0,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Chu", "Male", "8 Aug",4,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Nikita", "Female", "9 Aug",4,false,2);
        stateList.add(_BdaySelectListRow);
        _BdaySelectListRow = new BdaySelectListRow("Ravi Ranjan", "Male", "0 Aug",4,false,2);
        stateList.add(_BdaySelectListRow);

        // create an ArrayAdaptar from the String Array
        dataAdapter = new MyCustomAdapter(this, R.layout.list_row, stateList);
        ListView listView = (ListView) findViewById(R.id.listView1);
        // Assign adapter to ListView
        listView.setAdapter(dataAdapter);

        listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // When clicked, show a toast with the TextView text
                BdaySelectListRow state = (BdaySelectListRow) parent.getItemAtPosition(position);
                Toast.makeText(getApplicationContext(),
                        "Clicked on : " + state.getName(), Toast.LENGTH_LONG)
                        .show();
            }
        });
    }

    private class MyCustomAdapter extends ArrayAdapter<BdaySelectListRow> {

        private ArrayList<BdaySelectListRow> stateList;

        public MyCustomAdapter(Context context, int textViewResourceId,

        ArrayList<BdaySelectListRow> stateList) {
            super(context, textViewResourceId, stateList);
            this.stateList = new ArrayList<BdaySelectListRow>();
            this.stateList.addAll(stateList);
        }

        private class ViewHolder {
            TextView gender;
            TextView lastseen;
            CheckBox name;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            ViewHolder holder = null;

            Log.v("ConvertView", String.valueOf(position));

            if (convertView == null) {

                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                convertView = vi.inflate(R.layout.list_row, null);

                holder = new ViewHolder();
                holder.gender = (TextView) convertView.findViewById(R.id.gender);
                holder.lastseen = (TextView) convertView.findViewById(R.id.lastSeen);
                holder.name = (CheckBox) convertView
                        .findViewById(R.id.checkBox1);

                convertView.setTag(holder);

                holder.name.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        CheckBox cb = (CheckBox) v;
                        BdaySelectListRow _state = (BdaySelectListRow) cb.getTag();

                        Toast.makeText(
                                getApplicationContext(),
                                "Checkbox: " + cb.getText() + " -> "
                                        + cb.isChecked(), Toast.LENGTH_LONG)
                                .show();

                        _state.setSelected(cb.isChecked());
                    }
                });

            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            BdaySelectListRow state = stateList.get(position);

            holder.gender.setText(state.getGender());
            holder.lastseen.setText(state.getLastSeen());
            holder.name.setText(state.getName());
            holder.name.setChecked(state.isSelected());
            holder.name.setTag(state);

            return convertView;
        }

    }

    private void checkButtonClick() {

        Button myButton = (Button) findViewById(R.id.butBdaySelectNext);

        myButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                StringBuffer responseText = new StringBuffer();
                responseText.append("Selected Countries are...\n");

                ArrayList<BdaySelectListRow> stateList = dataAdapter.stateList;

                for (int i = 0; i < stateList.size(); i++) {
                    BdaySelectListRow state = stateList.get(i);

                    if (state.isSelected()) {
                        responseText.append("\n" + state.getName());
                    }
                }

                Toast.makeText(getApplicationContext(), responseText,
                        Toast.LENGTH_LONG).show();
            }
        });
    }

}
public class BdaySelectListRow {

    String gender = null;
    String name = null;
    String lastSeen = null;
    int rating=(Integer) null;
    int event=(Integer) null;
    boolean selected = false;

    public BdaySelectListRow(String name, String gender, String lastSeen ,int rating,boolean selected,int event) {
        super();
        this.name = name;
        this.gender = gender;
        this.lastSeen = lastSeen;
        this.rating = rating;
        this.event = event;
        this.selected = selected;
    }

    public String getLastSeen() {
        return lastSeen;
    }

    public void setLastSeen(String code) {
        this.lastSeen = lastSeen;
    }
    public String getGender() {
        return gender;
    }

    public void setGender(String code) {
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getRating() {
        return rating;
    }

    public void setRating(int rating) {
        this.rating = rating;
    }
    public int getEvent() {
        return event;
    }

    public void setEvent(int rating) {
        this.event = event;
    }
    public boolean isSelected() {
        return selected;
    }

    public void setSelected(boolean selected) {
        this.selected = selected;
    }

}

你想在这里干什么

int rating=(Integer) null;
int event=(Integer) null;
这相当于

int rating=((Integer) null).intValue();
int event=((Integer) null).intValue();
你只是想

int rating=0;
int event=0;

试试这个

换行

int rating=(Integer) null;
int event=(Integer) null;
作为


因为
int
基本值类型。感谢@JonSkeet给我的解释,查克了这一点

在评级和事件中声明默认值为0。然后删除构造函数中的super()关键字

您是否在
AndroidManifest.xml
中声明了此活动?发布您的所有日志以便更好地理解并删除
super()
BdaySelectListRow(……)
最好发布完整的日志。请指出您出现此错误的行。在com.example.mark.BdaySelect.displayListView(BdaySelect.java:84)上,这与android或logcat无关-您能理解为什么我的答案中的第一个片段将被编译为第二个片段,以及NPE发生的确切原因吗?
int rating=(Integer) null;
int event=(Integer) null;
int rating = 0;
int event = 0;