gpt4 book ai didi

java - Android EditText 空指针异常

转载 作者:行者123 更新时间:2023-12-01 12:42:36 24 4
gpt4 key购买 nike

我需要从放置在对话框中的 EditText 中获取数据。
当我尝试访问它时,我捕获了 NullPointerException。

这是我的代码:

public class MainActivity extends Activity {

int imgW ;
int imgH ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void OnToolButtonClick(View button)
{
switch (button.getId())
{
case R.id.btn1:

final Dialog commentDialog = new Dialog(this);
commentDialog.setContentView(R.layout.reply);
Button okBtn = (Button) commentDialog.findViewById(R.id.ok);

okBtn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

final EditText w= (EditText)findViewById(R.id.dialogW);
final EditText h= (EditText) findViewById(R.id.dialogH);

try {
imgW = Integer.parseInt(w.getText().toString());
imgH = Integer.parseInt( h.getText().toString());

}
catch (NumberFormatException e) {
imgH=0;
imgW=0;
}

Log.i("Size" , " w "+ imgW + " h " + imgH);
// drawing_panel_params

commentDialog.dismiss();
}
});
Button cancelBtn = (Button) commentDialog.findViewById(R.id.cancel);
cancelBtn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

commentDialog.dismiss();
}
});

commentDialog.show();

break;
}
}
}
}

主要布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.edittext.MainActivity$PlaceholderFragment" >

<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="OnToolButtonClick"
android:text="@string/Start_dialog" />

</RelativeLayout>

对话框布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >

<EditText
android:id="@+id/dialogW"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:hint="@string/Wight"
android:lines="3"
android:textColor="#000000" />

<EditText
android:id="@+id/dialogH"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:hint="@string/Height"
android:lines="3"
android:textColor="#000000" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/ok" />

<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/cancel" />
</LinearLayout>

</LinearLayout>

我想知道为什么会发生这种情况..??

最佳答案

改变

 final EditText w= (EditText)findViewById(R.id.dialogW);
final EditText h= (EditText)findViewById(R.id.dialogH);

 final EditText w= (EditText)commentDialog.findViewById(R.id.dialogW);
final EditText h= (EditText)commentDialog.findViewById(R.id.dialogH);

您的 dialogWdialogH 位于 reply 布局中,该布局在 commentDialog 中膨胀。您需要使用 View 来扩充 EditText 所在的布局

关于java - Android EditText 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com