获取LayoutInflater Android Java中对象的访问权限
如何访问扩展到AlertDialog的布局中的调色板,如单选按钮、按钮、文本编辑等获取LayoutInflater Android Java中对象的访问权限,java,android,Java,Android,如何访问扩展到AlertDialog的布局中的调色板,如单选按钮、按钮、文本编辑等 <RadioGroup android:id="@+id/rgSetMap" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="30dp" android:orientation="vertical"> &l
<RadioGroup
android:id="@+id/rgSetMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:orientation="vertical">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal"
android:id="@+id/rbNormal"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hybrid"
android:id="@+id/rbHybrid"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Satellite"
android:id="@+id/rbSat"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Terrain"
android:id="@+id/rbTer"
android:padding="20dp"
/>
</RadioGroup>
</LinearLayout>
因为我使用布局来提醒对话框,并尝试了这个
AlertDialog.Builder alertadd = new AlertDialog.Builder(LocateMe.this);
LayoutInflater factory = LayoutInflater.from(LocateMe.this);
View view = factory.inflate(R.layout.popup_layout, null);
RadioGroup rgSetMap = (RadioGroup) view.findViewById(R.id.rgSetMap);
int idRB = rgSetMap.getCheckedRadioButtonId();
final RadioButton rbSet = (RadioButton) view.findViewById(idRB);
alertadd.setView(view);
alertadd.setTitle("Map View Setting");
alertadd.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
Log.d("SET", rbSet.getText().toString());
}
});
alertadd.show();
<RadioGroup
android:id="@+id/rgSetMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:orientation="vertical">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal"
android:id="@+id/rbNormal"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hybrid"
android:id="@+id/rbHybrid"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Satellite"
android:id="@+id/rbSat"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Terrain"
android:id="@+id/rbTer"
android:padding="20dp"
/>
</RadioGroup>
</LinearLayout>
但它不起作用
<RadioGroup
android:id="@+id/rgSetMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:orientation="vertical">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal"
android:id="@+id/rbNormal"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hybrid"
android:id="@+id/rbHybrid"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Satellite"
android:id="@+id/rbSat"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Terrain"
android:id="@+id/rbTer"
android:padding="20dp"
/>
</RadioGroup>
</LinearLayout>
这里是布局XML
<RadioGroup
android:id="@+id/rgSetMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:orientation="vertical">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal"
android:id="@+id/rbNormal"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hybrid"
android:id="@+id/rbHybrid"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Satellite"
android:id="@+id/rbSat"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Terrain"
android:id="@+id/rbTer"
android:padding="20dp"
/>
</RadioGroup>
</LinearLayout>
将您的代码替换为此。从alertadd对话框(而不是从视图)查找视图。这就是它返回空值的原因
<RadioGroup
android:id="@+id/rgSetMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:orientation="vertical">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Normal"
android:id="@+id/rbNormal"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hybrid"
android:id="@+id/rbHybrid"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Satellite"
android:id="@+id/rbSat"
android:padding="20dp"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Terrain"
android:id="@+id/rbTer"
android:padding="20dp"
/>
</RadioGroup>
</LinearLayout>
AlertDialog.Builder alertadd = new AlertDialog.Builder(LocateMe.this);
LayoutInflater factory = LayoutInflater.from(LocateMe.this);
View view = factory.inflate(R.layout.popup_layout, null);
alertadd.setView(view);
final RadioGroup rgSetMap = (RadioGroup) alertadd.findViewById(R.id.rgSetMap);
final int idRB = rgSetMap.getCheckedRadioButtonId();
alertadd.setTitle("Map View Setting");
alertadd.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
View radioButton = rgSetMap.findViewById(idRB);
int radioId = radioGroup.indexOfChild(radioButton);
RadioButton btn = (RadioButton) rg1.getChildAt(radioId);
String selection = (String) btn.getText();
}
});
alertadd.show();