Android调试 - 删除TextView,按钮和布局时崩溃

时间:2012-05-19 02:44:28

标签: android

单击按钮删除TextView,Button和LinearLayout时,我的应用程序崩溃了。这是logcat报告。当我想在第118行删除View时它会崩溃:

        tasklayout.removeView(taskbutton);

05-19 14:35:58.222: E/AndroidRuntime(632): java.lang.NullPointerException
05-19 14:35:58.222: E/AndroidRuntime(632):  at com.com.com.addtask.deltask(addtask.java:118)
05-19 14:35:58.222: E/AndroidRuntime(632):  at com.com.com.addtask$2.onClick(addtask.java:65)
05-19 14:35:58.222: E/AndroidRuntime(632):  at android.view.View.performClick(View.java:3511)
05-19 14:35:58.222: E/AndroidRuntime(632):  at android.view.View$PerformClick.run(View.java:14105)
05-19 14:35:58.222: E/AndroidRuntime(632):  at android.os.Handler.handleCallback(Handler.java:605)

这是onClickListner和deltask void

    Button delt = (Button) findViewById(R.id.btndelete1);
    delt.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            deltask(v);
        }
    });

public void deltask(View v) {

    SharedPreferences datatask;
    datatask = getSharedPreferences(filename, 0);
    int tnum = datatask.getInt("tasknumber", 1);
    int layoutnum = 1000 + tnum;
    int textviewnum = 1100 + tnum;
    int buttonviewnum = 1200 + tnum;

    LinearLayout layout = (LinearLayout) findViewById(R.id.taskll);
    LinearLayout tasklayout = (LinearLayout) findViewById(layoutnum);
    TextView tasktv = (TextView) findViewById(textviewnum);
    Button taskbutton = (Button) findViewById(buttonviewnum);

    tasklayout.removeView(taskbutton);
    tasklayout.removeView(tasktv);
    layout.removeView(tasklayout);

}
有人帮忙!

2 个答案:

答案 0 :(得分:3)

尝试初始化函数外部的findviewbyiD的所有布局和文本视图。我认为它可以在执行相同的操作后使用它。在oncreate中对它进行处理可以解决问题。

答案 1 :(得分:1)

你有可能弄乱视图ID并试图找到实际上并不存在的东西。不是以编程方式分配ID,而是最好设置标记并使用findViewByTag