您的位置:首页 > 移动开发 > Android开发

Android中CheckBox的点选实现

2014-02-24 18:05 375 查看
.xml

<CheckBox>
android:id="@+id/chackBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CB1"
/>

.java

package com.example.helloandroid;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity{
private TextView tv;
private CheckBox cb1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.tv);
cb1=(CheckBox)findViewById(R.id.checkBox1);
cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
if(isChecked){
Toast.makeText(MainActivity.this,buttonView.getText().toString(),Toast.LENGTH_SHORT).show();
tv.setText("cb1 is Checked");
}
else{
Toast.makeText(MainActivity.this,buttonView.getText().toString(),Toast.LENGTH_SHORT).show();
tv.setText("cb1 is unChecked");
}
}
});
}
}




在有些书中,我也看到用public class MainActivity extends Activity implements OnCheckedChangeListener(){},然后在里面重写OnCheckedChanged()函数,但我个人更习惯用上面的写,因为当用到很多接口时,会很不方便。喜欢怎样,因人而异~

The method makeText(Context, CharSequence, int) in the type Toast if not applicable for the arguments (new CompoundButton.OnCheckedChangedListener(){}, String , int),其中Toast.makeText(,,)中有三个参数,

makeText(Context context, CharSequence int, int duration);

第一个参数是上下文对象,第二个参数是要显示的字符,第三个是消息的持续时间。注意到在函数中,不是通常的this作为第一个参数,我认为这可能是在函数的多层中内层感知不到外层(我猜的),所以这里要写的是“class名.this”,在上面的这个例子即MainActivity.this。当然,你也可以选择自己建一个函数然后在这个函数中可以调动toast使用this。

结果如图,这是还有其他控件的界面,只看红色部分就Ok~

参考资料:http://blog.sina.com.cn/s/blog_49dffa3b0100xfex.html   主要是在它的基础上加上了Toast的部分

pdf:《Android游戏编程之从零开始》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android CheckBox