在单选按钮onclick事件不工作 [英] onclick event on radioButton not working
本文介绍了在单选按钮onclick事件不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有哪些我想给上单击在此code未工作list.But每行的单选按钮事件的列表。给力close.Please谁能我帮out.I是新来的这一点。
包com.example.radiogroup;
进口的java.util.ArrayList;
进口的java.util.HashMap; 进口android.support.v7.app.ActionBarActivity;
进口android.support.v7.app.ActionBar;
进口android.support.v4.app.Fragment;
进口android.app.Activity;
进口android.content.Context;
进口android.database.DataSetObserver;
进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.Menu;
进口android.view.MenuItem;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.ViewGroup;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.BaseAdapter;
进口android.widget.Checkable;
进口android.widget.ImageView;
进口android.widget.ListAdapter;
进口android.widget.ListView;
进口android.widget.RadioButton;
进口android.widget.TextView;
进口android.widget.Toast;
进口android.os.Build; 公共类MainActivity扩展活动实现可勾选
{ 私人的ArrayList<&HashMap的LT;弦乐,对象>>数据;
私人ListAdapter适配器;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main); LV的ListView =(ListView控件)findViewById(R.id.listView1);
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
数据=新的ArrayList<&HashMap的LT;弦乐,对象>>();
prepareListData();
适配器=新ListAdapter(这个数据);
lv.setAdapter(适配器); / * lv.setOnItemClickListener(新OnItemClickListener()
{ @覆盖
公共无效onItemClick(适配器视图<>母公司,观景,
INT位置,长的ID)
{ {
如果(位置== 0)
{
Toast.makeText(getApplicationContext(),向前移动,
Toast.LENGTH_SHORT).show();
}
}
} }); * / }
私人无效prepareListData()
{
HashMap的<弦乐,对象> ROW1 =新的HashMap<弦乐,对象>();
row1.put(ID,1);
row1.put(名,泰姬陵);
data.add(ROW1); HashMap的<弦乐,对象> ROW2 =新的HashMap<弦乐,对象>();
row2.put(ID,2);
row2.put(名,阿格拉堡);
data.add(ROW2); HashMap的<弦乐,对象> ROW3 =新的HashMap<弦乐,对象>();
row3.put(ID,3);
row3.put(名,拉姆鲍);
data.add(ROW3); HashMap的<弦乐,对象> ROW4 =新的HashMap<弦乐,对象>();
row4.put(ID,4);
row4.put(名,潘奇泰姬陵);
data.add(ROW4); HashMap的<弦乐,对象> row5 =新的HashMap<弦乐,对象>();
row5.put(ID,5);
row5.put(名,Musamman迪拜塔);
data.add(row5); }
类ListAdapter扩展了BaseAdapter
{
私人上下文的背景下;
私人的ArrayList<&HashMap的LT;弦乐,对象>>清单;
ViewHolder持有人; 公共ListAdapter(上下文的背景下,ArrayList的<&HashMap的LT;弦乐,对象>>名单){
this.context =背景;
this.list =清单;
holder.rb.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v)
{
Toast.makeText(getApplicationContext(),向前移动,Toast.LENGTH_SHORT).show(); }
});
}
@覆盖
公众诠释的getCount(){
// TODO自动生成方法存根
返回则为list.size();
} @覆盖
公共对象的getItem(INT位置){
// TODO自动生成方法存根
返回list.get(位置);
} @覆盖
众长getItemId(INT位置){
// TODO自动生成方法存根
返回的位置;
}
@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup)
{ 如果(convertView == NULL){
持有人=新ViewHolder();
convertView = LayoutInflater.from(上下文).inflate(R.layout.row,空,假);
holder.rb =(单选)convertView.findViewById(R.id.radioButton1); convertView.setTag(保持器);
}其他{
支架=(ViewHolder)convertView.getTag();
} holder.rb.setText(list.get(位置)获得(NAME)的toString()); 返回convertView;
}
类ViewHolder
{
单选RB;
} }
@覆盖
公共无效setChecked(布尔选中){
// TODO自动生成方法存根 }
@覆盖
公共布尔器isChecked(){
// TODO自动生成方法存根
返回false;
}
@覆盖
公共无效切换(){
// TODO自动生成方法存根 }
}
解决方案
使用它getview基法上的适配器
holder.rb.setOnClickListener(新OnClickListener()
{ @覆盖
公共无效的onClick(视图v)
{
Toast.makeText(getApplicationContext(),向前移动,Toast.LENGTH_SHORT).show(); }
});
使用它的OnCreate基法
lv.setOnItemClickListener(新OnItemClickListener()
{ @覆盖
公共无效onItemClick(适配器视图<>母公司,观景,
INT位置,长的ID)
{ {
如果(位置== 0)
{
Toast.makeText(getApplicationContext(),向前移动+位置,Toast.LENGTH_SHORT).show();
}
其他
如果(位置== 1)
{
Toast.makeText(getApplicationContext(),向前移动+位置,
Toast.LENGTH_SHORT).show();
}
}
}});
I have a list on which i Want to give on-click event on radio-button of each row in the list.But this code is not working. Giving force close.Please can anyone me help out.I am new to this.
package com.example.radiogroup;
import java.util.ArrayList;
import java.util.HashMap;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.content.Context;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;
public class MainActivity extends Activity implements Checkable
{
private ArrayList<HashMap<String,Object>> data;
private ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv=(ListView)findViewById(R.id.listView1);
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
data=new ArrayList<HashMap<String, Object>>();
prepareListData();
adapter = new ListAdapter(this,data);
lv.setAdapter(adapter);
/* lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
{
if(position==0)
{
Toast.makeText(getApplicationContext(), "Move forward",
Toast.LENGTH_SHORT).show();
}
}
}
}); */
}
private void prepareListData()
{
HashMap<String,Object> row1=new HashMap<String,Object>();
row1.put("ID",1 );
row1.put("NAME","Taj Mahal");
data.add(row1);
HashMap<String,Object> row2=new HashMap<String,Object>();
row2.put("ID",2 );
row2.put("NAME","Agra Fort");
data.add(row2);
HashMap<String,Object> row3=new HashMap<String,Object>();
row3.put("ID",3 );
row3.put("NAME","Ram Baugh");
data.add(row3);
HashMap<String,Object> row4=new HashMap<String,Object>();
row4.put("ID",4 );
row4.put("NAME","Panch Mahal");
data.add(row4);
HashMap<String,Object> row5=new HashMap<String,Object>();
row5.put("ID",5 );
row5.put("NAME","Musamman Burj");
data.add(row5);
}
class ListAdapter extends BaseAdapter
{
private Context context;
private ArrayList<HashMap<String,Object>> list;
ViewHolder holder;
public ListAdapter(Context context,ArrayList<HashMap<String,Object>> list){
this.context = context;
this.list = list;
holder.rb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
Toast.makeText(getApplicationContext(), "Move forward", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if(convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.row,null,false);
holder.rb = (RadioButton) convertView.findViewById(R.id.radioButton1);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.rb.setText(list.get(position).get("NAME").toString());
return convertView;
}
class ViewHolder
{
RadioButton rb;
}
}
@Override
public void setChecked(boolean checked) {
// TODO Auto-generated method stub
}
@Override
public boolean isChecked() {
// TODO Auto-generated method stub
return false;
}
@Override
public void toggle() {
// TODO Auto-generated method stub
}
}
解决方案
USe it on getview Methed on Adapter
holder.rb.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(getApplicationContext(), "Move forward", Toast.LENGTH_SHORT).show();
}
});
Use it on OnCreate Methed
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
{
if(position==0)
{
Toast.makeText(getApplicationContext(), "Move forward "+position, Toast.LENGTH_SHORT).show();
}
else
if(position==1)
{
Toast.makeText(getApplicationContext(), "Move forward "+position,
Toast.LENGTH_SHORT).show();
}
}
}
});
这篇关于在单选按钮onclick事件不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文