第七章 跑马灯
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.helloworld.MainActivity" android:orientation="vertical" > <com.example.helloworld.MarqueeTest //2 注意这里,使用自定义 android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:ellipsize="marquee" //1 一般情况下 以上4行代码即可实现跑马灯 但是同一界面多个textview都需要跑马灯效果时 不可行 此时需要第2种方法 android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/text_name" /> <com.example.helloworld.MarqueeTest android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:ellipsize="marquee" android:id="@+id/textView2"
android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/text_name2" /> </LinearLayout>
//2 新建一个类 自定义xml样式
public class MarqueeTest extends TextView {
public MarqueeTest(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MarqueeTest(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MarqueeTest(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
//非常关键
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}
}
第八章 动态自动匹配
AutoCompleteTextView控件
layout中需要设置 android:completionThreshold="3" //输入多少个字符时出现自动匹配内容 其他的代码如下
public class MainActivity extends Activity { private AutoCompleteTextView acTextView; //1 初始化控件 private String[] res = {"beijing1","beijing2","shanghai1","shanghai2"}; // 3 初始化数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 1 初始化控件 * 2 需要一个适配器 * 3 初始化数据源 * 4 将adapter与当前的AutoCompleteTextView绑定 * */ acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); // 1 初始化控件 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //2 需要一个适配器 acTextView.setAdapter(adapter); //4 将adapter与当前的AutoCompleteTextView绑定 } }
MultiAutoCompleteTextView控件 效果如下
public class MainActivity extends Activity { private MultiAutoCompleteTextView macTextView; //1初始化控件 private String[] res = {"beijing1","beijing2","shanghai1","shanghai2"}; //3 初始化数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 1 初始化控件 * 2 需要一个适配器 * 3 初始化数据源 * 4 将adapter与当前的MultiAutoCompleteTextView绑定 * 5 设置分隔符 * */ macTextView = (MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1); //1 初始化控件 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //2 需要一个适配器 macTextView.setAdapter(adapter); //将adapter与控件绑定 macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); //设置逗号最为分隔符 } }
第九章 ToggleButton
有两种状态:选中和未选中 可以为不同状态设置不同显示文本
layout设置
<ToggleButton android:id="@+id/toggleButton1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textOn="开" android:textOff="关"/> <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/light_off"/>
MainActivity.java
public class MainActivity extends Activity implements OnCheckedChangeListener { //2 实现监听接口 private ToggleButton tb; // 1 初始化控件 private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); tb = (ToggleButton)findViewById(R.id.toggleButton1); //1 初始化控件 img = (ImageView)findViewById(R.id.imageView1); tb.setOnCheckedChangeListener(this); // 2 给togglebutton绑定监听事件 } @Override //3 重写监听方法 public void onCheckedChanged(CompoundButton arg0, boolean arg1) { img.setBackgroundResource(arg1?R.drawable.light_on:R.drawable.light_off); } }