我正在开发一个Android应用程序,我遇到了这个问题。我想在滚动视图中动态添加复选框,该视图将显示在对话框中。
问题是在浏览此表达式ScrollView layout = (ScrollView) findViewById(R.layout.custom);
这是功能。
private void openCustomMenu() {
// TODO Auto-generated method stub
ScrollView layout = (ScrollView) findViewById(R.layout.custom);
layout.removeAllViews();
for (String name : StopNames){
CheckBox checkbox = new CheckBox(this);
checkbox.setText(name);
checkbox.setTextColor(getResources().getColor(R.color.white));
layout.addView(checkbox);
}
final Dialog dialog = new Dialog(this);
dialog.setContentView(layout);
dialog.setTitle("Bus Stops");
}
这是我的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</ScrollView>
Thank you for you help !
编辑:新XML
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/custom">
</LinearLayout>
</ScrollView>
和新功能。
private void openCustomMenu() {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Bus Stops");
LinearLayout layout = (LinearLayout) dialog.findViewById(R.id.custom);
layout.removeAllViews();
for (String name : StopNames){
CheckBox checkbox = new CheckBox(this);
checkbox.setText(name);
checkbox.setTextColor(getResources().getColor(R.color.white));
layout.addView(checkbox);
}
}
答案 0 :(得分:0)
将findViewById(R.layout.custom);
更改为findViewById(R.id.custom);
,因此在您的代码中,请执行以下操作:
ScrollView layout = (ScrollView) findViewById(R.id.custom);
您正试图从id
而不是layouts
获取ids
。