為什么我的程序無法點擊
package com.example.listview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemClickListener{
? ? private ListView listView;
? ? private ArrayAdapter<String>aar_adapter;
? ? private SimpleAdapter simp_adapter;
? ? private List<Map<String,Object>>datalist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[]arr_data={"慕課網1","慕課網2","慕課網3","慕課網4","慕課網5","慕課網6"};
listView=(ListView) findViewById(R.id.listView);
//Adapter(上下文,當前ListView加載的每一個列表項所對應的布局文件,數據源)
//SimpleAdapter
/*
*context:上下文
*data:數據源 ?List<? extends Map<String, ?>> data)一個Map所組成的List集合
*每一個Map都會對應ListView列表中的一行
*每一個Map(鍵-值對)的鍵必修包含所有在from中所指定的鍵
*resource:列表下的布局文件ID
*from:Map中的鍵名
*to:綁定數據視圖中的Id
*/
datalist=new ArrayList<Map<String,Object>>();
aar_adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr_data);
//listView.setAdapter(aar_adapter);
simp_adapter=new SimpleAdapter(this, getData(), R.layout.item, new String[]{"image","text"}, new int[]{R.id.image,R.id.text});
listView.setAdapter(simp_adapter);
listView.setOnItemClickListener(this);
}
public List<Map<String,Object>> getData()
{
for(int i=1;i<20;i++)
{
Map<String, Object>map=new HashMap<String, Object>();
map.put("image", R.drawable.ic_launcher);
map.put("text", "慕課網"+(i+1));
datalist.add(map);
}
return datalist;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String text=listView.getItemAtPosition(arg2)+"";
Toast.makeText(this, "position="+arg2+" text="+text, 1).show();
}
}
2017-12-03
找了一下確實和我沒什么不一樣。就倒數第四行你沒有將texttoString()。不知道是不是哪里的原因。我將我的代碼貼出來你看一下吧:
package text.xu.com.listview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,AbsListView.OnScrollListener{
? ?private ListView lViewe;
? ?private ArrayAdapter<String> aAdapter;
? ?private SimpleAdapter sAdapter;
? ?private List<Map<String,Object>> dataList;
? ?@Override
? ?protected void onCreate(Bundle savedInstanceState) {
? ? ? ?super.onCreate(savedInstanceState);
? ? ? ?setContentView(R.layout.activity_main);
? ? ? ?//String[] astring={"xu","xuu","xuuu"};
? ? ? ?//aAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, astring);
? ? ? ?// lViewe.setAdapter(aAdapter);
? ? ? ?dataList=new ArrayList<Map<String, Object>>();
? ? ? ?lViewe=(ListView) findViewById(R.id.listView);
? ? ? ?sAdapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
? ? ? ?lViewe.setAdapter(sAdapter);
? ? ? ?lViewe.setOnItemClickListener(this);
? ? ? ?lViewe.setOnScrollListener(this);
? ?}
? ?private List<Map<String,Object>> getData(){
? ? ? ?for(int i=0;i<20;i++){
? ? ? ? ? ?Map<String,Object> map=new HashMap<String, Object>();
? ? ? ? ? ?map.put("pic", R.drawable.ic_launcher);
? ? ? ? ? ?map.put("text", "機器人"+i);
? ? ? ? ? ?dataList.add(map);
? ? ? ?}
? ? ? ?return dataList;
? ?}
? ?@Override
? ?public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
? ? ? String str1= lViewe.getItemAtPosition(position).toString();
? ? ? ?Toast.makeText(this,"position"+position+" text"+str1,Toast.LENGTH_SHORT).show();
? ?}
? ?@Override
? ?public void onScrollStateChanged(AbsListView absListView, int scollstate) {
? ?switch (scollstate){
? ? ? ?case SCROLL_STATE_FLING:
? ? ? ? ? ?Log.e("scroll","手指離開仍繼續滑動");
? ? ? ? ? ?break;
? ? ? ?case SCROLL_STATE_IDLE:
? ? ? ? ? ?Log.e("scroll","停止滑動");
? ? ? ? ? ?break;
? ? ? ?case SCROLL_STATE_TOUCH_SCROLL:
? ? ? ? ? ?Log.e("scroll","使用手指滑動");
? ? ? ? ? ?Map<String,Object> map=new HashMap<String, Object>();
? ? ? ? ? ?map.put("pic",R.drawable.ic_launcher);
? ? ? ? ? ?map.put("text","小小機器人呦吼");
? ? ? ? ? ?dataList.add(map);
? ? ? ? ? ?sAdapter.notifyDataSetChanged();
? ? ? ? ? ?break;
? ?}
? ?}
? ?@Override
? ?public void onScroll(AbsListView absListView, int i, int i1, int i2) {
? ?}
}