长按某个控件异常——onLongListener《》

长按某个控件错误——onLongListener《在线等》09-08 01:52:58.997: E/AndroidRuntime(737): Uncaught handler

长按某个控件错误——onLongListener《在线等》
09-08 01:52:58.997: E/AndroidRuntime(737): Uncaught handler: thread main exiting due to uncaught exception
09-08 01:52:59.007: E/AndroidRuntime(737): java.lang.NullPointerException
09-08 01:52:59.007: E/AndroidRuntime(737): at android.view.View.showContextMenu(View.java:2380)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.view.View.performLongClick(View.java:2366)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.widget.TextView.performLongClick(TextView.java:7230)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.view.View$CheckForLongPress.run(View.java:8312)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.os.Handler.handleCallback(Handler.java:587)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.os.Handler.dispatchMessage(Handler.java:92)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.os.Looper.loop(Looper.java:123)
09-08 01:52:59.007: E/AndroidRuntime(737): at android.app.ActivityThread.main(ActivityThread.java:4203)
09-08 01:52:59.007: E/AndroidRuntime(737): at java.lang.reflect.Method.invokeNative(Native Method)
09-08 01:52:59.007: E/AndroidRuntime(737): at java.lang.reflect.Method.invoke(Method.java:521)
09-08 01:52:59.007: E/AndroidRuntime(737): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
09-08 01:52:59.007: E/AndroidRuntime(737): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
09-08 01:52:59.007: E/AndroidRuntime(737): at dalvik.system.NativeStart.main(Native Method)

上面的错误信息来自:我本想要实现,长按一个按钮,该按钮被删除,但是不知道为何老是报上述错误。

代码:
public class RedirectActivity extends Activity {

Button button = null;
Button button1 = null;
LinearLayout linearLayout = null;
Bundle saved = null;
boolean flag;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
   
  this.saved = savedInstanceState;
  button1 = (Button)findViewById(R.id.button1);
  linearLayout = (LinearLayout)findViewById(R.id.layout);
  button = new Button(this);
  button.setId(R.id.button2+1);
  button.setText("add one button");
  button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  // linearLayout.addView(button);
  linearLayout.addView(button, 1);
  button1.setOnLongClickListener(new View.OnLongClickListener() {

public boolean onLongClick(View v) {
//ok();

linearLayout.removeView(button1);
return false;
}
});
}
}

[解决办法]
button报了空指针异常,楼主把button.setId(R.id.button2+1);这句代码去掉
[解决办法]
把button设置为GONE可以不。
true和flase表示事件是否被消耗,
http://blog.csdn.net/ddna/article/details/5451722 看看这篇文章