为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的程序无法点击

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();

}


}


正在回答

1 回答

找了一下确实和我没什么不一样。就倒数第四行你没有将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) {
   }
}

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

为彭十七加油oO

最后一个函数方法onScroll有什么用我忘记了...几十天之前写的代码了。
2017-12-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111194    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

为什么我的程序无法点击

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信