Android 在AlertDialog中显示微调器
我想在alertDialog中显示微调器。我有下面的代码,但它只是给我一个黑屏。Logcat没有说任何错误 MyActivity.javaAndroid 在AlertDialog中显示微调器,android,xml,user-interface,spinner,Android,Xml,User Interface,Spinner,我想在alertDialog中显示微调器。我有下面的代码,但它只是给我一个黑屏。Logcat没有说任何错误 MyActivity.java AlertDialog.Builder builder; AlertDialog alertDialog; Context mContext = getApplicationContext(); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLA
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.spinner,null);
String array_spinner[];
array_spinner=new String[5];
array_spinner[0]="US";
array_spinner[1]="Japan";
array_spinner[2]="China";
array_spinner[3]="India";
array_spinner[4]="Vietnam";
Spinner s = (Spinner) layout.findViewById(R.id.Spinner01);
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, array_spinner);
s.setAdapter(adapter);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
Main.xml
<?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:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
<?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:orientation="vertical" >
<Spinner
android:id="@+id/Spinner01"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
为了查看对话框。您需要使用
alertDialog.show()
来显示对话框。此外,您可能会因为在那里使用的mContext
而出错
通常,这对对话框没有帮助。相反,请尝试使用ActivityName。此
作为mContext
Unable to start activity ComponentInfo{com.example.SpinnerExample/com.example.SpinnerExample.SpinnerExampleActivity}
这意味着在menifest包中的名称:com.example.SpinnerExample
及
活动名称:com.example.SpinnerExample.SpinnerExampleActivity
因此,删除限定名称并设置ActivityName
。SpinnerExample
如果您提供新对话框(上下文),通常会发生这种情况代码>错误的上下文。在生成对话框时使用此选项:
final Dialog dialog = new Dialog(YourClass.this);
dialog.setContentView(R.layout.your_xml_layout);
dialog.setTitle("Dialog Title");
dialog.show();
请记住使用类名和XML布局路径相应地更改YourClass
。首先,您的mContext必须在活动中相等,mContext=this在onCreate中,并且必须在onCreate中声明微调器,如果此解决方案能够解决您的问题,谢谢您的回答,但它会强制关闭,我更新了日志猫的帖子。感谢@Hiral提供的额外信息和您的回复,它将强制关闭,我更新了日志猫的帖子。您的日志猫不可读。请复制错误行并简单地将其粘贴到您的问题中。当您刚刚添加alert.show()而未将McContext更改为ActivityName时,您得到了什么?Yo@Hiral!非常感谢,将其更改为Context mContext=SpinnerExampleActivity.this;为我工作!:)
Unable to start activity ComponentInfo{com.example.SpinnerExample/com.example.SpinnerExample.SpinnerExampleActivity}
final Dialog dialog = new Dialog(YourClass.this);
dialog.setContentView(R.layout.your_xml_layout);
dialog.setTitle("Dialog Title");
dialog.show();