為什么我的程序無(wú)法點(diǎn)擊
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={"慕課網(wǎng)1","慕課網(wǎng)2","慕課網(wǎng)3","慕課網(wǎng)4","慕課網(wǎng)5","慕課網(wǎng)6"};
listView=(ListView) findViewById(R.id.listView);
//Adapter(上下文,當(dāng)前ListView加載的每一個(gè)列表項(xiàng)所對(duì)應(yīng)的布局文件,數(shù)據(jù)源)
//SimpleAdapter
/*
*context:上下文
*data:數(shù)據(jù)源 ?List<? extends Map<String, ?>> data)一個(gè)Map所組成的List集合
*每一個(gè)Map都會(huì)對(duì)應(yīng)ListView列表中的一行
*每一個(gè)Map(鍵-值對(duì))的鍵必修包含所有在from中所指定的鍵
*resource:列表下的布局文件ID
*from:Map中的鍵名
*to:綁定數(shù)據(jù)視圖中的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", "慕課網(wǎng)"+(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
找了一下確實(shí)和我沒(méi)什么不一樣。就倒數(shù)第四行你沒(méi)有將texttoString()。不知道是不是哪里的原因。我將我的代碼貼出來(lái)你看一下吧:
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", "機(jī)器人"+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","手指離開(kāi)仍繼續(xù)滑動(dòng)");
? ? ? ? ? ?break;
? ? ? ?case SCROLL_STATE_IDLE:
? ? ? ? ? ?Log.e("scroll","停止滑動(dòng)");
? ? ? ? ? ?break;
? ? ? ?case SCROLL_STATE_TOUCH_SCROLL:
? ? ? ? ? ?Log.e("scroll","使用手指滑動(dòng)");
? ? ? ? ? ?Map<String,Object> map=new HashMap<String, Object>();
? ? ? ? ? ?map.put("pic",R.drawable.ic_launcher);
? ? ? ? ? ?map.put("text","小小機(jī)器人呦吼");
? ? ? ? ? ?dataList.add(map);
? ? ? ? ? ?sAdapter.notifyDataSetChanged();
? ? ? ? ? ?break;
? ?}
? ?}
? ?@Override
? ?public void onScroll(AbsListView absListView, int i, int i1, int i2) {
? ?}
}