亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大神幫我檢查一下。我寫這個代碼運行不了

ActivityListView.java
package?com.example.arrayadpterdemo;

import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;

import?android.os.Bundle;
import?android.widget.ListView;
import?android.widget.SimpleAdapter;
import?android.app.Activity;

public?class?MainActivity?extends?Activity?{
	ListView?listView;
	List<Map<String,?Object>>?data;

	@Override
	protected?void?onCreate(Bundle?savedInstanceState)?{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_listview);

		listView?=?(ListView)?findViewById(R.id.listView);
		/*
		?*?
		?*?//新建一個適配器,并添加數據源?String[]?data?=
		?*?{"Items1","Items2","Items3","Items4"};?ArrayAdapter<String>
		?*?arr_Adpter?=?new?ArrayAdapter<String>(this,
		?*?android.R.layout.simple_expandable_list_item_1,?data);?//視圖加載適配器
		?*?listView.setAdapter(arr_Adpter);
		?*/
		//新建適配器+加載數據源
		List<Map<String,?Object>>?data?=?new?ArrayList<Map<String,?Object>>();		
		SimpleAdapter?sp_Adapter?=?new?SimpleAdapter(this,?getData(),
				R.layout.alayout,?new?String[]?{?"pic",?"word"?},
				new?int[]?{?R.id.pic,?R.id.word?});
		//視圖加載適配器
		listView.setAdapter(sp_Adapter);
	}
	
	//獲取數據源
	private?List<Map<String,?Object>>?getData()?{
		for?(int?i?=?0;?i?<?10;?i++)?{
			Map<String,?Object>?map?=?new?HashMap<String,?Object>();
			map.put("pic",?R.drawable.ic_launcher);
			map.put("word",?"123");
			data.add(map);
		}
		return?data;
	}

}



alaout.xml

<?xml?version="1.0"?encoding="utf-8"?>
<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
????android:layout_width="match_parent"
????android:layout_height="match_parent"
????android:orientation="horizontal"?>

????<ImageView
????????android:id="@+id/pic"
????????android:layout_marginLeft="20dp"
????????android:layout_width="wrap_content"
????????android:layout_height="wrap_content"
????????android:src="@drawable/ic_launcher"?/>

????<TextView
????????android:gravity="center_horizontal"
????????android:layout_marginTop="10dp"
????????android:id="@+id/word"
????????android:layout_width="fill_parent"
????????android:layout_height="30dp"
????????android:text="Android?Robot"
????????android:textSize="20sp"?
????????/>

</LinearLayout>


activity_listview
<?xml?version="1.0"?encoding="utf-8"?>
<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
????android:layout_width="match_parent"
????android:layout_height="match_parent"
????android:orientation="vertical"?>

????<ListView
????????android:id="@+id/listView"
????????android:layout_width="match_parent"
????????android:layout_height="wrap_content"?>
????</ListView>

</LinearLayout>

http://img1.sycdn.imooc.com//57e3534e00010ae309150414.jpg

正在回答

4 回答

data是成員變量,你在oncreate()方法里面又重新寫了個data,相當于一個局部變量,在獲取數據源的方法中添加數據到data(全局變量的data),但是你全局的data并沒有初始化,而且數據距適配器中的data并沒有數據。建議你將oncreate()方法中List<Map<String,?Object>>?data?=?new?ArrayList<Map<String,?Object>>();改為data?=?new?ArrayList<Map<String,?Object>>();

1 回復 有任何疑惑可以回復我~
#1

qq_生活在別處_0 提問者

非常感謝!
2016-11-03 回復 有任何疑惑可以回復我~

你getdata()方法是模擬假數據的 ?后面一個換成map.put("word"+i);

0 回復 有任何疑惑可以回復我~

你定義在onCreate外的data并沒有new,而onCreate里創建的這個data根本沒使用。

求采納!

1 回復 有任何疑惑可以回復我~

那異常貼出來啊

0 回復 有任何疑惑可以回復我~
#1

qq_生活在別處_0 提問者

logcat?里面怎么什么都沒有
2016-09-22 回復 有任何疑惑可以回復我~
#2

qq_生活在別處_0 提問者

我重新啟動eclipse試試
2016-09-22 回復 有任何疑惑可以回復我~
#3

掘坑自埋 回復 qq_生活在別處_0 提問者

你先把程序注釋掉留標簽,先看能不能顯示出來吧
2016-09-22 回復 有任何疑惑可以回復我~
#4

qq_生活在別處_0 提問者 回復 掘坑自埋

異常貼出來了
2016-09-22 回復 有任何疑惑可以回復我~
#5

qq_生活在別處_0 提問者 回復 掘坑自埋

我知道哪里錯了,不應該在onCreate方法里面定義data,應該直接在構造Adtpter之前定義data,這里的之前不是代碼之前。而是運行之前。也就是把聲明放在方法外面。
2016-09-22 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消
Android攻城獅的第二門課(第1季)
  • 參與學習       111145    人
  • 解答問題       1560    個

本課程由淺入深地帶您學會Android的常用控件的開發和使用

進入課程

求大神幫我檢查一下。我寫這個代碼運行不了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號