Android Spinner 在 Botttomsheet 对话框中返回 NullPointerException
Android Spinner is Returning NullPointerException in Botttomsheet Dialog
我正在尝试 Return 我的 BottomSheet 中的微调值 Dialog.But 它正在返回 NullPointerException always.Below 是我的 String.XML 文件
<string-array name="e_type">
<item>item1</item>
<item>item2</item>
</string-array>
这是我的 bottomsheet_activity.xml 文件
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/e_type" />
我正在尝试通过以下代码获取值
final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
dialog3.setContentView(R.layout.bottomsheet_activity);
final Spinner spinner=(Spinner) findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
String requesttype=itemText; //Trying to use this variable but returning null
dialog3.show();
为什么返回 null ,我不知道
您的微调器为空,因为您是从 activity 的 xml 文件中找到它的。
试试下面的代码,
final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
View mDialogView = LayoutInflater.from(this).inflate(R.layout.activity_mine, null)
dialog3.setContentView(mDialogView);
final Spinner spinner=(Spinner) mDialogView.findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
String requesttype=itemText; //Trying to use this variable but returning null
dialog3.show();
希望对您有所帮助!!
希望这对你有用。
String requesttype;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final BottomSheetDialog dialog3 = new BottomSheetDialog(NewActivity.this);
dialog3.setContentView(R.layout.lay_new);
final Spinner spinner=(Spinner) dialog3.findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
requesttype=parent.getItemAtPosition(position).toString();
Log.e("requesttype",requesttype);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
dialog3.show();
}
您正在从
中获取参考
final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
dialog3.setContentView(R.layout.bottomsheet_activity);
所以改变这个-:
final Spinner spinner=(Spinner) findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
到-:
final Spinner spinner=(Spinner) dialog3.findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
我正在尝试 Return 我的 BottomSheet 中的微调值 Dialog.But 它正在返回 NullPointerException always.Below 是我的 String.XML 文件
<string-array name="e_type">
<item>item1</item>
<item>item2</item>
</string-array>
这是我的 bottomsheet_activity.xml 文件
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/e_type" />
我正在尝试通过以下代码获取值
final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
dialog3.setContentView(R.layout.bottomsheet_activity);
final Spinner spinner=(Spinner) findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
String requesttype=itemText; //Trying to use this variable but returning null
dialog3.show();
为什么返回 null ,我不知道
您的微调器为空,因为您是从 activity 的 xml 文件中找到它的。 试试下面的代码,
final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
View mDialogView = LayoutInflater.from(this).inflate(R.layout.activity_mine, null)
dialog3.setContentView(mDialogView);
final Spinner spinner=(Spinner) mDialogView.findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
String requesttype=itemText; //Trying to use this variable but returning null
dialog3.show();
希望对您有所帮助!!
希望这对你有用。
String requesttype;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final BottomSheetDialog dialog3 = new BottomSheetDialog(NewActivity.this);
dialog3.setContentView(R.layout.lay_new);
final Spinner spinner=(Spinner) dialog3.findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
requesttype=parent.getItemAtPosition(position).toString();
Log.e("requesttype",requesttype);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
dialog3.show();
}
您正在从
中获取参考final BottomSheetDialog dialog3 = new BottomSheetDialog(MainActivity.this);
dialog3.setContentView(R.layout.bottomsheet_activity);
所以改变这个-:
final Spinner spinner=(Spinner) findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();
到-:
final Spinner spinner=(Spinner) dialog3.findViewById(R.id.spinner);
final String itemText = (String) spinner.getSelectedItem();