如何将arraylist值设置为android中的listview?
我需要在列表视图中显示我的数据列表数据。我的数据列表是public static ArrayList<ArrayList<String>> ourstringList1
。在我的listadapter类我试图从arraylist中获取数据并将其设置为tesxtview。但因为我需要arr.get(i).get(j)..。我无法继续前进。 请帮我对此...如何将arraylist值设置为android中的listview?
我的代码: 公共类testreview延伸活动{
private ListView listViewScore = null;
private ListViewAdapter listViewAdapter = null;
public static ArrayList<ArrayList<String>> ourstringList1 = Select.stringList1;
private ArrayList<ArrayList<String>> usernameArrLst = ourstringList1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
listViewScore=(ListView)findViewById(R.id.list);
usernameArrLst = new ArrayList<ArrayList<String>>();
listViewAdapter = new ListViewAdapter();
listViewScore.setAdapter(listViewAdapter);
}
class ListViewAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
if(usernameArrLst==null){
return 0;
}
return usernameArrLst.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return usernameArrLst.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
View rowView=view;
if(rowView==null){
LayoutInflater layoutinflate =LayoutInflater.from(testreview.this);
rowView=layoutinflate.inflate(R.layout.listrow, parent, false);
}
TextView textViewName=(TextView)rowView.findViewById(R.id.tv_case);
textViewName.setText((CharSequence) usernameArrLst.get(position));
return rowView;
}
}
}
在此先感谢
为此,我认为你需要编写您的自定义适配器并将其设置为列表
Get The Idea
希望这会帮助你。
ListAdapter adapter = new ArrayAdapter
糖果如果u我们展示你已经尝试了什么,那么它应该已经better.But按我的理解,我们的代码看起来应该是这样:
public class TestProjeectActivity extends Activity {
private ListView listViewScore = null;
private ListViewAdapter listViewAdapter = null;
private String[] usernameArr = null;
private ArrayList<String> usernameArrLst = null;
//private Helper helper = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listViewScore=(ListView)findViewById(R.id.listViewScore);
//helper = new Helper(TestProjeectActivity.this);
//usernameArr = helper.getUserName();
usernameArr = new String[]{"Alan","Bob"};
usernameArrLst = new ArrayList<String>(Arrays.asList(usernameArr));//Changed line
listViewAdapter = new ListViewAdapter();
listViewScore.setAdapter(listViewAdapter);
}
class ListViewAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
if(usernameArrLst==null){
return 0;
}
return usernameArr.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return usernameArrLst.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
View rowView=view;
if(rowView==null){
LayoutInflater layoutinflate =LayoutInflater.from(TestProjeectActivity.this);
rowView=layoutinflate.inflate(R.layout.listviewtext, parent, false);
}
TextView textViewName=(TextView)rowView.findViewById(R.id.textViewName);
textViewName.setText(usernameArr.get(position));
return rowView;
}
}
}
嗨感谢您的回应..我得到listViewScore.setAdapter(listViewAdapter)附近的错误; ...你能告诉我为什么它显示异常接近line..do我们需要创建setadapter类? – RaagaSudha 2012-01-04 07:32:20
@Sweety你可以让我知道什么是异常....不,我们不需要创建setAdapter类 – Maverick 2012-01-04 08:11:43
@Sweety我编辑了代码请尝试并让我知道 – Maverick 2012-01-04 08:20:51
对不起,没看到你有鳞片状的ArrayList。为了获得你需要的元素,使用类转换来到达内部的ArrayList并迭代它们。
ArrayList<ArrayList<String>> stringList;
stringList = ourStringList1;
for (int i = 0; i < stringList.size(); i++) {
ArrayList<String> innerStringList = (ArrayList<String>) stringList.get(i);
for (int j = 0; j < innerStringList.size(); j++) {
String value = (String) innerStringList.get(j);
// put the value in the textView
}
}
当你建立你的适配器类,创建一个类的属性,将持有的ArrayList阵列和在构造函数初始化。
希望这会有所帮助。如果你需要进一步的解释让我知道。
重新使用节标题? – 2012-01-03 09:57:29
描述你希望数据显示在你的列表视图中,因为你基本上有一个数据网格,你可以在一个列表中显示所有的值,让每个ArrayList位于列表的单独标题/部分之下......等等 – 2012-01-03 09:59:51
嗨我正在测验应用程序。在我的数据列表中,数据存储为行和列。所以我需要获得第1行第1列,然后我必须将其设置为在listview中的textview。我怎样才能做到这一点? – RaagaSudha 2012-01-03 10:09:33