Ich verwende den folgenden Code, um Bilder in ListView mit BaseAdapter anzuzeigen. Der Code zeigt Bilder aus dem internen Ordner. Aber ich möchte, um den Code zu ändern, so dass es Remote-Bilder aus folgenden Array zeigt:Wie können Remote-Bilder in ListView mit BaseAdapter angezeigt werden?
String flags[] ={"http://www.website.com/images/usa.png","http://www.website.com/images/china.png","http://www.website.com/images/australia.png","http://www.website.com/images/portugle.png","http://www.website.com/images/norway.png","http://www.website.com/images/new_zealand.png"};
Könnte ein Experte mir zeigen, was Teil change.Thanks im voraus sein muss.
MainActivity.java:
public class MainActivity extends Activity {
ListView simpleList;
String countryList[] = {"USA", "China", "australia", "Portugle", "Norway", "NewZealand"};
int flags[] = {R.drawable.usa, R.drawable.china, R.drawable.australia, R.drawable.portugle, R.drawable.norway, R.drawable.new_zealand};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleList = (ListView) findViewById(R.id.simpleListView);
CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), countryList, flags);
simpleList.setAdapter(customAdapter);
simpleList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Hello " + countryList[position], Toast.LENGTH_LONG).show();
}
});
}
}
CustomAdapter.java:
Public class CustomAdapter extends BaseAdapter {
Context context;
String countryList[];
int flags[];
LayoutInflater inflter;
public CustomAdapter(Context applicationContext, String[] countryList, int[] flags) {
this.context = context;
this.countryList = countryList;
this.flags = flags;
inflter = (LayoutInflater.from(applicationContext));
}
@Override
public int getCount() {
return countryList.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = inflter.inflate(R.layout.activity_listview, null);
TextView country = (TextView) view.findViewById(R.id.textView);
ImageView icon = (ImageView) view.findViewById(R.id.icon);
country.setText(countryList[i]);
icon.setImageResource(flags[i]);
return view;
}
}
Vielen Dank für die Antwort. Ich bin nicht sehr erfahren in der Android-Entwicklung, also könnten Sie mir auf ein Tutorial zeigen, wie man eine Funktion schreibt und es aus getView aufruft und es an das Bild-Array weiterleitet, damit es auf listview angezeigt wird? – user1788736
Ja, Sie können mit: https://www.simplifiedcoding.net/android-volley-tutorial-fetch-json/ – HaroldSer
Später können Sie Jackson Databinding verwenden, um die Werte aus der Antwort auf die POJO (Modellklasse) abzubilden. Siehe diesen Link als Referenz: https://stackoverflow.com/questions/25545984/how-to-use-jackson-objectmapper-to-parse-json-response-to-java-objects – HaroldSer