Android 将McClickListener设置为ListView
这是我的代码:Android 将McClickListener设置为ListView,android,listview,Android,Listview,这是我的代码: ListView lv=getListView(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new ProgressTask(MainActivity.this).execute
ListView lv=getListView();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ProgressTask(MainActivity.this).execute();
ImageView image = (ImageView)findViewById(R.id.image);
!!! lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
intent = new Intent(MainActivity.this,DetailInfo.class);
intent.putExtra("title",jsonlist.get(position).get("title"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
ListView lv=getListView();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建ProgressTask(MainActivity.this).execute();
ImageView图像=(ImageView)findViewById(R.id.image);
!!!lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图(MainActivity.this,DetailInfo.class);
intent.putExtra(“title”,jsonlist.get(position.get(“title”));
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“url”,jsonlist.get(position.get(“image”));
星触觉(意向);
问题是当我尝试将OnItemClickListener设置为lv时。我如何初始化lv?我有活动扩展了ListActivity。我找不到id的lv,因为ListView的id=android:id/list。我有适配器,它使用了setListAdapter(adapter)和all。我如何为lv设置侦听器?首先在onCreate()中初始化您的lv,然后执行如下操作
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ProgressTask(MainActivity.this).execute();
//Supposing your listview is from android package
lv = (ListView)findViewById(android.R.id.list);
ImageView image = (ImageView)findViewById(R.id.image);
!!! lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
intent = new Intent(MainActivity.this,DetailInfo.class);
intent.putExtra("title",jsonlist.get(position).get("title"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
ListView-lv;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建ProgressTask(MainActivity.this).execute();
//假设您的listview来自android软件包
lv=(ListView)findViewById(android.R.id.list);
ImageView图像=(ImageView)findViewById(R.id.image);
!!!lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图(MainActivity.this,DetailInfo.class);
intent.putExtra(“title”,jsonlist.get(position.get(“title”));
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“url”,jsonlist.get(position.get(“image”));
星触觉(意向);
我建议使用RecyclerView,您可以在列表中的每个项目上设置OnclickListener。列表视图不再流行。
设置值时使用RecyclerView的示例:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
AnyViewHolder view = (AnyViewHolder ) holder;
view.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do something
}
});
}
}
为什么不在java代码中的Xml&findviewById中放置listView?发布Xml布局文件和方法:
getListView()
。