我嘗試使用HashMap<String, String>()
來填充ListView
。我應該拿取我的網站API來獲取最新的json新聞表示。現在我基本上試圖模擬動態數據並手動輸入新聞。我面臨的問題是它不會像預期的那樣添加新聞,而只是重複它們。對不起,不好的解釋。這是我的代碼澄清Android。使用HashMap的listView
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "ru.rateksib.sendmessage.MESSAGE";
EditText editText;
ListView newsList;
Map<String, String> map;
ArrayList<HashMap<String, String>> NewsArrayList;
NewsArrayAdapter arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.news_dialog, null);
builder.setView(convertView);
builder.setTitle("Новости компании");
// set up list view inside alertDialog
newsList = (ListView) convertView.findViewById(R.id.dialogNewsList);
// map
NewsArrayList = new ArrayList<HashMap<String, String>>();
map = new HashMap<String, String>();
map.put("title", "New branch opened!");
map.put("date", "28.03.2014");
NewsArrayList.add((HashMap<String, String>) map);
map.put("title", "Second one!");
map.put("date", "28.03.2014");
NewsArrayList.add((HashMap<String, String>) map);
// custom adapter
arrayAdapter = new NewsArrayAdapter(NewsArrayList, this);
newsList.setAdapter(arrayAdapter);
因此,當我運行該應用程序列表填充兩次與最後一組標題和日期。
我的自定義適配器代碼是
感謝您的答案,但我應該在循環中做到這一點。我怎麼去解決它? –
你在循環中意味着什麼?我剛拿到你的代碼作爲例子。重點是,你想添加到列表中的每個地圖對象都必須是一個新的對象。不要重複使用相同的地圖。 –