android中的空指针异常
我的对话框有以下代码,我想从警报框中获取一些文本,但下面给出的代码抛出空指针异常android中的空指针异常,android,Android,我的对话框有以下代码,我想从警报框中获取一些文本,但下面给出的代码抛出空指针异常 public EditText summarytext; public Button done; Context mContext = getApplicationContext(); Dialog dialog = new Dialog(mContext); dialog.setContentView(R.layout.summaryalert); dialog.setTitle("Oth
public EditText summarytext;
public Button done;
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.summaryalert);
dialog.setTitle("Other");
done=(ButtonfindViewById(R.id.btn);
done.setOnClickListener(don);<----Nullpointer Exception
摘要警报
主布局
>
编辑
解决了强>
包括“对话”
完成=(按钮)dialog.findViewById(R.id.btn)
findViewById(int)
如果在布局中找不到指定的id,则可以返回null
)findViewById(int)
如果在布局中找不到指定的id,则可以返回null
)尝试使用dialog.findviewbyd(r.id.summarytext)您可能也应该将其用于“完成”按钮。但是,您必须在dialog.show()之后进行调用。另一方面,您可以在Toast中使用getApplicationContext()而不是getBaseContext()。尝试使用dialog.findViewById(r.id.summarytext)您可能也应该在done按钮中使用它。但是,您必须在dialog.show()之后进行调用。另一方面,您可以在Toast中使用getApplicationContext()而不是getBaseContext()。错误代码是什么?如果您在问题中添加堆栈跟踪,将更容易解决问题。从这段代码很难判断。单击按钮或显示消息时是否发生异常?在DDMS或调试视图中,您可以看到抛出的是哪一行。02-10 03:16:04.657:WARN/System.err(2938):java.lang.NullPointerException在onclick事件期间哪个实际行抛出NullPointerException?如果是
sumry=summarytext.getText().toString()代码>,那么您就知道找不到summartext,正如kosokund所解释的。如果您正在处理警报对话框上的按钮单击,您可能应该使用对话框界面单击侦听器而不是视图单击侦听器。rahul,您的回答帮助了我+1对于您的帖子,错误代码是什么?如果您在问题中添加堆栈跟踪,将更容易解决问题。从这段代码很难判断。单击按钮或显示消息时是否发生异常?在DDMS或调试视图中,您可以看到抛出的是哪一行。02-10 03:16:04.657:WARN/System.err(2938):java.lang.NullPointerException在onclick事件期间哪个实际行抛出NullPointerException?如果是sumry=summarytext.getText().toString()代码>,那么您就知道找不到summartext,正如kosokund所解释的。如果您正在处理警报对话框上的按钮单击,您可能应该使用对话框界面单击侦听器而不是视图单击侦听器。rahul,您的回答帮助了我+为了你的贪婪。这将指向代码或xml布局中的布局问题。这将指向代码或xml布局中的布局问题。如果在R.layout.summaryalert中声明id,则只能使用dialog.findViewById()找到该视图,因为布局受到影响。如果在R.layout.summaryalert中声明id,则只能使用dialog.findViewById()找到该视图,因为布局受它的影响。
private View.OnClickListener don=new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v==findViewById(R.id.btn)){
summarytext=(EditText)findViewById(R.id.summarytext);
sumry=summarytext.getText().toString();
String display=""+sumry;
Toast toast = Toast.makeText(getBaseContext(),
display, Toast.LENGTH_LONG);
toast.show();
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000"
android:gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TableRow
android:id="@+id/widget60"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<TextView
android:id="@+id/text"
android:text="Other(provide summary)"
android:textColor="#ffffff"
></TextView></TableRow>
<TableRow
android:id="@+id/widget60"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<EditText
android:id="@+id/summarytext"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
>
</EditText>
</TableRow>
<TableRow
android:id="@+id/widget60"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<Button
android:id="@+id/btn"
android:text="Done"
></Button>
</TableRow>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget31"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TableLayout
android:id="@+id/widget58"
android:layout_width="320px"
android:layout_height="65px"
android:orientation="vertical"
>
<TableRow
android:id="@+id/widget60"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<EditText
android:id="@+id/other"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:ems="15">
</EditText>
</TableRow>
<TableRow
android:id="@+id/widget42"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center"
>
<Button
android:id="@+id/submit"
android:layout_width="155px"
android:layout_height="41px"
android:text="Done"
android:layout_x="77px"
android:layout_y="313px"
>
</Button>
</TableRow>>
</TableLayout>