实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用
.RadioGroup是单选组合框,可以容纳多个RadioButton的容器.在没有RadioGroup的情况下,RadioButton可以全部都选中;
当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个。
并用setOnCheckedChangeListener来对单选按钮进行监听。
public class Fragmenthome extends Fragment implements View.OnClickListener {
private Button firstBtn;
private Myadapt adp;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragmentl, container, false);//打气筒可以吧xml资源转换成view,
}
/*view创建完毕*/
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
firstBtn = (Button) view.findViewById(R.id.login);
firstBtn.setOnClickListener(this);//按钮点击,下面实现implements View.OnClickListener接口方法
// // ArrayAdapt*********************ArrayAdapter通常用于将数组或List集合的多个值包装成多个列表项。
ListView list = (ListView) view.findViewById(R.id.list);
// String [] das={" a"," b"," c"," d"};
// ArrayAdapter<String> adp=new ArrayAdapter<String>(getContext(),R.layout.itemsingle,R.id.textv,das);
// list.setAdapter(adp);
// SimpleAdapter 的使用*************
List<Map<String,String>> das=new ArrayList<>();
Map<String,String> map=new HashMap<>();
map.put("name","aa1");
map.put("phone","1333");
Map<String,String> map2=new HashMap<>();
map2.put("name","aa2");
map2.put("phone","1333");
Map<String,String> map3=new HashMap<>();
map3.put("name","aa3");
map3.put("phone","1333");
das.add(map);
das.add(map2);
das.add(map3);
//第一个参数是context,第二个参数是List数据,第三个参数是List中的item,第四个参数是map中的键数组,第五个参数是item。xml中的控件
SimpleAdapter sadp=new SimpleAdapter(getContext(),das,R.layout.itemsingle,new String[]{"name","phone"},new int[]{R.id.textl,R.id.textr});
list.setAdapter(sadp);
baseAdapt 的使**********************************
// ListView list = (ListView) view.findViewById(R.id.list);
// adp = new Myadapt();
//
// list.setAdapter(adp);//listview设置适配器
//
// initData();
}
private void initData() {
List<String > da=new ArrayList<>();
da.add("dddd");
da.add("dddd01");
da.add("dddd02");
da.add("dddd03");
adp.setData(da);
}
//按钮点击事件,通过意图吧跳转到下一个activity,吧数据传到下一个页面
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
Intent inten = new Intent(getContext(), ACOne.class);
inten.putExtra("f", "diyige");
startActivity(inten);/*跳转到下一个页面*/
break;
}
}
public class Myadapt extends BaseAdapter {
private List<String> data;
public void setData(List<String> data){
this.data=data;
notifyDataSetChanged();
}
@Override
public int getCount() {
if(data==null){
data=new ArrayList<>();
}
return data.size();
}
@Override
public Object getItem(int position) {
Log.e("a","posi:"+position);
return data.get(position);
}
@Override
public long getItemId(int position) {
Log.e("b","posi:"+position);
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
ViewHolder holder = null;
if (convertView == null) {
holder=new ViewHolder();
// v = View.inflate(getContext(), R.layout.item, null);//打气筒方法一:吧xml布局转换成view
// v = LayoutInflater.from(getContext()).inflate(R.layout.item,null);//打气筒方法二
LayoutInflater imflate= (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);//打气筒方法三
v=imflate.inflate(R.layout.item,null);
holder.et = (EditText) v.findViewById(R.id.et);
holder.imagV= (ImageView) v.findViewById(R.id.imagv);
} else {
v = convertView;
}
holder.et.setText(data.get(position));
holder.imagV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击imageView
}
});
return v;
}
public class ViewHolder{
ImageView imagV;
EditText et;
}
}
}
----------item-------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="item的数据"
android:ellipsize="end"
android:lines="1"
android:textColor="#000000"/>
<ImageView
android:id="@+id/imagv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
======================Listview和radiogroup的使用=========
public class MainActivity extends AppCompatActivity {
String[] ob = {"one", "two", "three", "four", "five"};
private EditText et;
private RadioGroup rg;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
rg = findViewById(R.id.rg);
et = findViewById(R.id.et_name);
lv = findViewById(R.id.textLv);
ArrayAdapter<String> adp = new ArrayAdapter<String>(this, R.layout.item, R.id.tx_item, ob);//设置数据
lv.setAdapter(adp);//设置数据适配器
//给ListView设置点击事件
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//当条目被点击的时候被调用
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//吧点击条目的数据取出来
Log.e("s","点击Item");
// String s = ob[i];
//
// Intent intent = new Intent();
// //设置动作
// intent.setAction("android.intent.action.View");
//添加Categary
// intent.addCategory("android.intent.category.DEFAULT");
// //设置TYPE
// intent.setType("text/plain");
// //传递数据
// intent.putExtra("sms_body", s);
//
// //跳转到发送短信页面
// startActivity(intent);
}
});
}
//计算radioGroup按钮点击事件
public void cacuteClick(View v) {
int sex = 0;
String etS = et.getText().toString().trim();
if (!TextUtils.isEmpty(etS)) {
//获取radiobutton的ID
int rdId = rg.getCheckedRadioButtonId();
switch (rdId) {
case R.id.man:
sex = 1;
break;
case R.id.fale:
sex = 2;
break;
case R.id.middle:
sex = 3;
break;
}
if (sex == 0) {
return;
} else {
//跳转activity
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("name", "lambo");
startActivity(intent);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.wofu.fiverenpin.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:orientation="vertical"
>
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入姓名"
/>
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:checked="true"
android:drawableLeft="@drawable/select"
android:gravity="center"
android:text="男" />
<RadioButton
android:id="@+id/fale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="女"/>
<RadioButton
android:id="@+id/middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="人妖"/>
</RadioGroup>
<Button
android:id="@+id/sureBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="计算"
android:onClick="cacuteClick"/>
<ListView
android:id="@+id/textLv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="afterDescendants">
</ListView>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
===========listView中优化措施,使用viewHolder=======
public class CallSmsSafeActivty extends Activity {
private TextView tv_blackname;
private ListView lst_blackname;
private List<BlackNumberInfo> infos;
private BlacknameDao dao;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.callsmssafe_activity);
tv_blackname = findViewById(R.id.tv_blackname);
lst_blackname = findViewById(R.id.lst_blackname);
dao=new BlacknameDao(this);
infos=dao.findAll();
CallSmsSafeAdapt adp=new CallSmsSafeAdapt();
lst_blackname.setAdapter(adp);
}
private class CallSmsSafeAdapt extends BaseAdapter{
private viewHolder holder;
@Override
public int getCount() {
return infos.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
//有多少个条目,这个方法就会被调用多少次
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v;
if(view!=null){
v=view;
holder= (viewHolder) v.getTag();
}else {
v = View.inflate(getApplicationContext(), R.layout.list_callblackname_item, null);
holder = new viewHolder();
holder.tv=(TextView) v.findViewById(R.id.lst_blackname);
v.setTag(holder);
}
holder.tv.setText(infos.get(i).getNumber());
return v;
}
}
//记事本存储textview的内存地址
class viewHolder{
private TextView tv;
}
}