我几天前就在搜索这个问题,但不幸的是我无法找到问题的答案。我目前正在开发一个android项目,当你单击一个按钮时,它会显示一个对话框,其中包含字符串数组资源中项目的列表视图。谢谢你。
这是我的字符串数组:
<string-array name="heart_attacks_and_shock">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
这是我的代码:
import java.util.ArrayList;
import com.sap.BSMA.R.string;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
@SuppressLint("ParserError")
public class FirstaidActivity extends Activity {
Resources res = getResources();
String[] has = res.getStringArray(R.array.heart_attacks_and_shock);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstaid_layout);
ImageButton has_button = (ImageButton) findViewById(R.id.HAS);
has_button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//set up dialog
Dialog dialog = new Dialog(FirstaidActivity.this);
dialog.setContentView(R.layout.firstaidcategoryoutput_layout);
dialog.setTitle("Heart attack and shock");
dialog.setCancelable(true);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,has);
setListAdapter(adapter);
dialog.show();
}
});
}
}
弹出窗口的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@drawable/mainbackground">
<ListView
android:id="@+id/listExample"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCCCCC"
android:choiceMode="singleChoice"
/>
</RelativeLayout>
答案 0 :(得分:2)
添加此
Dialog dialog = new Dialog(FirstaidActivity.this);
dialog.setContentView(R.layout.firstaidcategoryoutput_layout);
ListView list = (ListView)dialog.findViewById(R.id.listExample);
dialog.setTitle("Heart attack and shock");
dialog.setCancelable(true);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (FirstaidActivity.this,android.R.layout.simple_list_item_1,has);
list.setAdapter(adapter);
dialog.show();
答案 1 :(得分:0)
你的一个问题是你正在使用的“this”对象是指onclick方法中的错误内容。而不是尝试Firstaidactivity.this来获取您的活动的上下文
第二个问题是除非类扩展了ListActivity,否则不能在方法中使用setListAdapter。您需要获取listExample的引用,然后执行list.setAdapter(adapter)
答案 2 :(得分:0)
您可以尝试更改:
android:id="@+id/listExample"
到
android:id="@android:id/list"