我正在開發一個Android應用程序,它使用SQLite數據庫存儲信息。我試圖得到一些這些信息,並將它們添加到AlertDialog與單選按鈕,但是當我調試,我得到這樣的RuntimeException:requestFeature()必須在添加內容 之前調用我認爲錯誤是:Android - AlertDialog與RadioButtons,得到AndroidRuntimeException
shop_type.setContentView(R.layout.shop_list_selection);
但我不知道如何解決它。
在這裏,當我點擊一個ImageButton的代碼:
ImageButton shopping = (ImageButton)findViewById(R.id.gotoshop); shopping.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Get infos from DB Cursor lists = dbAdapter.select("ls_tipo_lista", new String[] {"id", "nome"}, null, null, null, null, null); // Fetch data if exists if(lists.getCount() > 0) { // Create AlertDialog AlertDialog shop_type = new AlertDialog.Builder(MenuActivity.this).create(); // Set title and layout shop_type.setTitle("Tipo di spesa"); shop_type.setContentView(R.layout.shop_list_selection); // Get RadioGroup from shop_list_selection.xml RadioGroup opts = (RadioGroup)shop_type.findViewById(R.id.rbshop); // Fetch data while(lists.moveToNext()) { // Create radio button instance RadioButton rdbtn = new RadioButton(MenuActivity.this); // Add data rdbtn.setId(lists.getInt(0)); rdbtn.setText(lists.getString(1)); // Add to radiogroup opts.addView(rdbtn); } // Show dialog shop_type.show(); } } });
這裏的XML佈局:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rbshop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > </RadioGroup>
哦,那太好了。它完美的作品。謝謝! :)澄清:setView()不是簡單的AlertDialog的方法,只適用於AlertDialog.Builder :) – Andres7X
我很高興我可以提供幫助。要成爲技術'setView(int)'不是AlertDialog中的方法,但是'setView(View)'是......對於我更新我的答案的困惑感到抱歉。 – Sam