gpt4 book ai didi

android - Android中关联数据和ListView

转载 作者:行者123 更新时间:2023-11-30 03:06:10 24 4
gpt4 key购买 nike

我的情况是这样的:

在我看来 Highscore_zeigen我有一个 ArrayList<Rangliste>我想展示的。整个事情都在 onPostExecute试图从 URL 中获取 JSON 数据的线程。

    ArrayList<String> gewinnernamen = new ArrayList<String>();
ArrayList<String> gewinnerdatum = new ArrayList<String>();
Rangliste r = new Rangliste("","");
ArrayList<Rangliste> rangliste = new ArrayList<Rangliste>();

....

@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);
}

所以我现在要展示的数据在rangliste中.一切正常,但我不知道如何在我的 ListView 中显示我的数据. ListView 在 Highscore_zeigen 的布局文件中,我的行也有一个布局:

<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"/>

所以我有数据,有一个 ListView,还有一个 ListView 的布局。我不知道如何将这三样东西连接起来,以便数据显示在我的 ListView 中。

最佳答案

您需要按照以下链接中的说明使用 R.android.two_line_list_item。有指向示例的链接,但第二个答案解释得很好。

can any one provide me example of Two_line_list_item in Android?

编辑:

我会这样做,我会创建对整个类(即 AsyncTask)都可访问的 ListView 的引用。然后在 onPostExecute() 中:

    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();
}

您可能需要将 JSON 转换为数组这是您的适配器:

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;
}
}

关于android - Android中关联数据和ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21783263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com