Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的空指针异常_Android - Fatal编程技术网

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>