Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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
Android 当试图通过按按钮向表中添加行时,应用程序崩溃_Android - Fatal编程技术网

Android 当试图通过按按钮向表中添加行时,应用程序崩溃

Android 当试图通过按按钮向表中添加行时,应用程序崩溃,android,Android,我不熟悉安卓系统。当用户按下对话框中的“提交”按钮时,我试图从对话框中获取输入并将数据添加到片段中的表中。当我按下提交按钮时,我遇到崩溃。你知道如何解决这个问题吗 public class Monitoring extends Fragment{ Button btn_add_value; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle s

我不熟悉安卓系统。当用户按下对话框中的“提交”按钮时,我试图从对话框中获取输入并将数据添加到片段中的表中。当我按下提交按钮时,我遇到崩溃。你知道如何解决这个问题吗

public class Monitoring extends Fragment{

    Button btn_add_value;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_inr_monitoring, container, false);

        design_button(view);

        return view;
    }

    public void design_button(View view){
        btn_add_value = (Button)view.findViewById(R.id.btn_add_inr);
        btn_add_value.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final Dialog dialog_input = new Dialog(getActivity(), R.style.FullHeightDialog);
                dialog_input.setContentView(R.layout.dialog_inr_input);

                Button btn_submit = (Button) dialog_input.findViewById(R.id.dialog_submit_button);
                btn_submit.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        //TODO retrive date and value and send to table
                        EditText input_value = (EditText)dialog_input.findViewById(R.id.input_inr_value);
                        String value = input_value.getText().toString();

                        DatePicker input_date = (DatePicker)dialog_input.findViewById(R.id.input_date_date);
                        String date = input_date.getDayOfMonth() + " / " + input_date.getMonth() + " / " + input_date.getYear();

                        add_value_table(v,date,value);

                        dialog_input.dismiss();
                    }
                });

                Button btn_cancel = (Button) dialog_input.findViewById(R.id.dialog_cancel_button);
                btn_cancel.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog_input.dismiss();
                    }
                });

                dialog_input.show();
            }
        });
    }

    public void add_value_table(View view, String date, String value){

        TableLayout table = (TableLayout)view.findViewById(R.id.inr_table);
        TableRow row = new TableRow(getActivity());
        row.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));

        TextView table_date = new TextView(getActivity());
        table_date.setText(date);
        row.addView(table_date);

        TextView table_value = new TextView(getActivity());
        table_date.setText(value);
        row.addView(table_value);

        table.addView(row);
    }

}
日志:

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TableLayout.addView(android.view.View)' on a null object reference
            at com.sghhc.heartpluswarfarin.inr_monitoring.MonitoringINR$1$1.onClick(MonitoringINR.java:70)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

view
而不是
v
传递到
add\u value\u table
方法,作为从
fragment\u inr\u monitoring
访问视图的第一个参数:

add_value_table(view,date,value);
我必须在“公共空间设计按钮(视图)”中添加final,它正在工作。。。非常感谢你。。。。