2016年11月8日 星期一 天气晴
今天我们学习了radiobutton的用法和radiogroup的用法。
Radiogroup为按钮组,而radiobutton为其中的一个按钮。
在activity_main中先去修改布局的方式,将其修改为线性布局,增加总体的布局方式为垂直布局,再加入一个radiogroup并将其命名为radiogroup将宽度和高度设置为自动,设置方位为水平方位。
在radiogroup下添加一控件为radiobutton,将其命名为radiobutton1,宽高设为自动,添加控件的文本为男,设置初始选中为true,android:checked="true"。
添加第二个控件还是radiobutton将其命名为radiobutton2,宽高设为自动,添加控件的文本为女。
在控件的下方添加一个文本,为选中的目标进行提示,首先需要将这个文本控件进行命名,为textview1,宽高都为自动,其中的文字需要引用valuse中string,hello_world后面的文字,作为初始字。在string文件中,需要修改hello_world后的文字为选择男或女。
在mainActivity中设置文本控件和按钮控件的变量设置为privateRadioGroup rGroup;private TextView tView;
在setContentView(R.layout.activity_main);下对rGroup和tView进行赋值rGroup=(RadioGroup)findViewById(R.id.RadioGroup);
tView=(TextView)findViewById(R.id.textView1);
用更名内置的方法进行监听,rGroup。
rGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener()。
用switch来设置点击后显示的文本。
switch(arg1)case R.id.RadioButton1:tView.setText("男被选中");break;case R.id.RadioButton2:tView.setText("女被选中");
<RadioGroup
android:id="@+id/radiogroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:checked="true">
<RadioButton
android:id="@+id/radiobutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="man"/>
<RadioButton
android:id="@+id/radiobutton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="woman"/>
</RadioGroup>
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
//定义变量
private RadioGroup rGroup;
private TextView tView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//赋值
rGroup=(RadioGroup) findViewById(R.id.radiogroup1);
tView=(TextView) findViewById(R.id.textview1);
//用命名内部类的方法绑定监听
rGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
switch(arg1)
{
case R.id.radiobutton1:tView.setText("man has selected!");break;
case R.id.radiobutton2:tView.setText("women has selected!");
}
}
});
}
}
然后还学习了listview
首先新建一个project在valuse中设置strings文件中hello_world后的文字,将其设置为手机拼配目录。
在layout中的xml文件中设置布局方式为垂直布局方式,设置一个控件为文本空间,宽高为自定义,文本显示的信息引用string的hello_world,这样就会显示需要的文字。
添加一个ListView的点击事件,命名为listview01,宽高自定义。
在mainactivity中定义一个变量,privateListViewlView;获取其中的控件lView=(ListView)findViewById(R.id.listview1);
用string生成数据源
Stringdata[]={"苹果","三星","华为","HTC","小米"};将数据源移动到适配器中
ArrayAdapterarrayAdapter= newArrayAdapter(this,android.R.layout.simple_list_item_1,data);
将适配器绑定给类表控件lView.setAdapter(arrayAdapter);
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
<ListView
android:id="@+id/listview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
//定义变量private ListView lView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 lView=(ListView) findViewById(R.id.listview1); //生成数据源 final String data[]={"华为","三星","苹果","小米"}; //将数据源封装到适配器中 ArrayAdapter arrayAdapter=new ArrayAdapter(this,R.layout.listview,R.id.textview2, data);
//将适配器绑定给列表控件
lView.setAdapter(arrayAdapter);
lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String msg=data[arg2];
Toast.makeText(MainActivity.this, msg,3000).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
listview的布局方式除了可以用系统自带的,也可以自己编写
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFE0"
android:textSize="20sp"
>
</TextView>
利用Toast语句实现反馈
Toast.makeText(MainActivity.this, msg,3000).show();