在Android中关联数据和列表视图
我的情况是: 在我看来,在Android中关联数据和列表视图,android,listview,layout,arraylist,Android,Listview,Layout,Arraylist,我的情况是: 在我看来,Highscore\u zeigen我有一个ArrayList,我想展示一下。整个过程都是在试图从URL获取JSON数据的线程的onPostExecute中完成的 ArrayList<String> gewinnernamen = new ArrayList<String>(); ArrayList<String> gewinnerdatum = new ArrayList<String>(); Ra
Highscore\u zeigen
我有一个ArrayList
,我想展示一下。整个过程都是在试图从URL获取JSON数据的线程的onPostExecute
中完成的
ArrayList<String> gewinnernamen = new ArrayList<String>();
ArrayList<String> gewinnerdatum = new ArrayList<String>();
Rangliste r = new Rangliste("","");
ArrayList<Rangliste> rangliste = new ArrayList<Rangliste>();
以下是我的布局:
所以我有数据,我有一个ListView,我也有一个ListView的布局。我不知道如何连接这三件事,以便数据显示在我的ListView中 您需要使用R.android.two\u line\u list\u item,如下链接所述。 这些例子都有链接,但第二个答案解释得很好 编辑: 按照我的方法,我将创建一个对整个类(即AsyncTask)可访问的ListView的引用。然后在onPostExecute()中:
lv=(ListView)findViewById(R.id.lvGewinner);
试一试{
对于(int i=0;i),所以您只想在屏幕上以列表的形式显示数据?在屏幕上以列表的形式显示我发布的给定布局..抱歉,我不知道在哪里调用此SimpleAdapter代码。您能给我一个示例吗?您的AddAdapter是什么?有太多示例,我真的丢失了概述抱歉+。。。
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
if(isOnline() == true){
System.out.println("HIHIHIHIHHIHI " +result);
super.onPostExecute(result);
JSONArray jsonarray = null;
try {
jsonarray = new JSONArray(result);
} catch (JSONException e) {
Toast.makeText(Highscore_zeigen.this, "Ups! Bitte überprüfe deine Netzwerkverbindung! ", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
String namest = "";
String datumst ="";
try {
jb = (JSONObject) jsonarray.getJSONObject(0);
} catch (JSONException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
for(int i = 0; i <5;i++){
try {
jb = (JSONObject) jsonarray.getJSONObject(i);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
namest = jb.getString("name");
datumst = jb.getString("datum");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
gewinnernamen.add(i, namest);
gewinnerdatum.add(i, datumst);
adapter.notifyDataSetChanged();
}
for(int is = 0; is<5; is++){
r = new Rangliste(gewinnernamen.get(is), gewinnerdatum.get(is));
rangliste.add(r);
}
<ListView
android:id="@+id/lvGewinner"
android:paddingTop="40dp"
android:paddingLeft="20dp"
android:paddingBottom="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" >
</ListView>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textStyle="bold"
/>
<TextView
android:id="@+id/dist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="8dp"
android:textStyle="italic"/>
lv = (ListView) findViewById(R.id.lvGewinner);
try {
for(int i = 0; i <5;i++){
...
namest = jb.getString("name");
datumst = jb.getString("datum");
...
Rangliste[] ... // create your array
...
}
lv.setAdapter(new RanglisteArrayAdapter(this, rangliste);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public class RanglisteArrayAdapter extends TwoLineArrayAdapter<Rangliste> {
public RanglisteArrayAdapter(Context context, Rangliste[] rangliste) {
super(context, rangliste);
}
@Override
public String lineOneText(Rangliste r) {
return r.namest;
}
@Override
public String lineTwoText(Rngliste r) {
return r.datumst;
}
}