单击按钮删除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);
}
有人帮忙!
答案 0 :(得分:3)
尝试初始化函数外部的findviewbyiD的所有布局和文本视图。我认为它可以在执行相同的操作后使用它。在oncreate中对它进行处理可以解决问题。
答案 1 :(得分:1)
你有可能弄乱视图ID并试图找到实际上并不存在的东西。不是以编程方式分配ID,而是最好设置标记并使用findViewByTag
。