1

每次在我的 android 应用程序上单击一个按钮时,我都会尝试向表中添加一个新行。每次我点击添加行按钮时,它都会崩溃并在尝试将行添加到表中的行上给我一个错误。错误是 java.lang.NullPointerException (不确定这意味着我对 android 开发很陌生)。

这是我在下面的代码。任何输入都有帮助。

错误发生在 table.addView(tr, new....... 行(几乎是最后一行)上。

public class addItem extends Activity 
{

    private TableLayout table = null;

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_additem);

        table = (TableLayout)findViewById(R.id.maintable);

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

                update();
            }
        });

    }

    private void update()
    {
        TableRow tr = new TableRow(addItem.this);
        tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));

        TextView tv = new TextView(addItem.this);
        tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
        tv.setText("New Entry");
        tr.addView(tv);

        table.addView(tr, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));


    }}

除了最后一行之外,似乎每个作品都没有问题。

日志猫报告:

08-19 06:57:54.002: E/AndroidRuntime(3486): FATAL EXCEPTION: main 08-19 06:57:54.002: E/AndroidRuntime(3486): java.lang.NullPointerException 08-19 06:57:54.002: E/AndroidRuntime(3486): at com.mirafriends.recipeme.addItem.update(addItem.java:47) 08-19 06:57:54.002: E/AndroidRuntime(3486): at com.mirafriends.recipeme.addItem.access$0(addItem.java:37) 08-19 06:57:54.002: E/AndroidRuntime(3486): at com.mirafriends.recipeme.addItem$1.onClick(addItem.java:30) 08-19 06:57:54.002: E/AndroidRuntime(3486): at android.view.View.performClick(View.java:4204) 
4

1 回答 1

0

我做了这样的事情来动态地将行添加到表中。

请通过:

//----------------Essay name table body------------------------------------------
                essay_title_tr_data = new TableRow(this);
                essay_title_tr_data.setId(10);
                essay_title_tr_data.setBackgroundResource(R.drawable.grey_list_bg);
                essay_title_tr_data.setLayoutParams(new LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));


                    final TextView essay_title = new TextView(this);
                    essay_title.setId(20);
                    essay_title.setText(Html.fromHtml(parser.getValue(e, KEY_Title)));
                    essay_title.setTextColor(Color.BLACK);
                    essay_title.setPadding(5,5,5,5);
                    essay_title.setTextSize(10);
                    essay_title_tr_data.addView(essay_title);// add the column to the table row here


                    final TextView essay_description = new TextView(this);
                    essay_description.setId(20);
                    essay_description.setText(Html.fromHtml(parser.getValue(e, KEY_Description)));
                    essay_description.setTextColor(Color.BLACK);
                    essay_description.setPadding(5,5,5,5);
                    essay_description.setTextSize(10);
                    essay_title_tr_data.addView(essay_description);// add the column to the table row here
//                  String strSubmissionDate=parser.getValue(e, KEY_DateofFormSubmission);

                    final String url=parser.getValue(e, KEY_PDFUrl);



                    essay_title_table.addView(essay_title_tr_data, new TableLayout.LayoutParams(
                            LayoutParams.FILL_PARENT,
                            LayoutParams.WRAP_CONTENT));

布局文件:

<RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_below="@+id/relativeLayout1"
     android:layout_centerHorizontal="true" 
     android:padding="3dp">

     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_alignParentTop="true"
         android:layout_centerHorizontal="true" 
         android:background="#FFFFFF">

         <ScrollView
             android:id="@+id/scrollView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" >

             <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content" >

                 <ImageView
                     android:id="@+id/imageView1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_alignParentLeft="true"
                     android:layout_alignParentTop="true"
                     android:src="@android:drawable/ic_input_get" />

                 <TextView
                     android:id="@+id/textView1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_alignParentTop="true"
                     android:layout_marginLeft="24dp"
                     android:layout_toRightOf="@+id/imageView1"
                     android:text="@string/essay_corner"
                     android:textColor="#000000"
                     android:textSize="16sp" />

                 <HorizontalScrollView
                     android:id="@+id/horizontalScrollView1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_below="@+id/imageView1"
                     android:layout_centerHorizontal="true" >

                     <RelativeLayout
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content" >

                     <TableLayout
                         android:id="@+id/essay_title_table"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_centerHorizontal="true"
                         android:layout_centerVertical="true" >


                     </TableLayout>

                 </RelativeLayout>
                 </HorizontalScrollView>

             </RelativeLayout>

         </ScrollView>

     </RelativeLayout>

 </RelativeLayout>

我希望你能有所了解。

于 2013-08-19T07:34:38.020 回答