gpt4 book ai didi

android - 如何将 ArrayList 转换为 ListView?

转载 作者:行者123 更新时间:2023-11-30 01:37:35 24 4
gpt4 key购买 nike

我正在尝试从 PHP 页面获取一个数组并将其显示在 ListView 中。

我试图把它放在 ListAdapter 中,但出现了这个问题:

01-21 09:13:44.223: E/AndroidRuntime(1974): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.e_music/com.example.e_music.ViewArtists}: java.lang.ClassCastException: java.util.ArrayList cannot be cast to android.widget.ListAdapter

安卓代码:

@SuppressLint("NewApi") public class ViewArtists extends ListActivity{
// url to get all products list
private static String urlArtists= "http://mwssong.esy.es/android/ViewArtists.php";

// JSON Node names
public static final String TAG_SUCCESS = "success";
public static final String TAG_Artist = "Artists";
public static final String TAG_id = "id";
public static final String TAG_FName = "FName";

ArrayList<Artist> getArtists =new ArrayList<Artist>();

class Artist {

public String id;
public String FName;
public String LName;
public String Gender;
public String Country;
}

static ArrayList<String> ResultRow;
@TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewartists);

String result ="";

try{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://mwssong.esy.es/android/ViewArtists.php");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = httpEntity.getContent();

try {

BufferedReader reader =new BufferedReader(new InputStreamReader(is,"iso-8859-1" ),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch (Exception e){
Log.e("log_tag", "error1 " + e.toString());

}

}catch (Exception e){
Log.e("log_tag","error2 " + e.toString());

}

try{
JSONArray jArray= new JSONArray(result);
for(int i=0; i<jArray.length();i++){
JSONObject json_data =jArray.getJSONObject(i);
//Create new Artist:
Artist ArtistRow= new Artist();
//Get attributes:
ArtistRow.id=json_data.getString("id");
ArtistRow.FName=json_data.getString("FName");
ArtistRow.LName=json_data.getString("LName");
ArtistRow.Gender=json_data.getString("Gender");
ArtistRow.Country=json_data.getString("Country");

getArtists.add(ArtistRow);
}
}catch (Exception e){
Log.e("log_tag","error3 " + e.toString());

}

ArrayAdapter<Artist> adapter = new ArrayAdapter<Artist>(this, android.R.layout.simple_list_item_1, getArtists);
ListView myListView =(ListView)findViewById(R.id.lvArtist);
myListView.setAdapter(adapter);
}
}

最佳答案

如错误所述,您不能将 ArrayList 转换为 ListAdapter

如果你有:

ArrayList<String> arrayList = new ArrayList<String>();

你应该直接创建一个适配器:

private ArrayAdapter arrayAdapter = 
new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList);

然后将其用于:

listView.setAdapter(arrayAdapter);

关于android - 如何将 ArrayList 转换为 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926847/

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