安卓开发

认识安卓的Wiget的基本使用

EditText,TextView ,常用属性

2.介绍了意图 Intent  携带数据传值 

startActivityForResult(Intent  , 设置码);

  //实例化Intent对像
Intent intent=new Intent(this,TowShow.class);
//实例化Bundle对象    绑定数
Bundle bundle=new Bundle();
bundle.putString("name", zhanghao.getText().toString());
bundle.putString("pwd", mima.getText().toString());
intent.putExtra("userinfo",bundle );

点击显示下一个意图

public void onClick(View v) {
Intent intent = new Intent();
//获取文本框的文本放入到意图对应的键中
intent.putExtra("res", txtAnswer.getText().toString());
//设置返回的响应码,并携带有数据的意图
setResult(RESULT_OK, intent);
//因为是栈结构,所以直接销毁自己,就自然回到前一个页面了
finish();
}

1.设置适配器 的字段从1开始搜索
android:completionThreshold="1"
 两种适配器  MultiAutoCompleteTextView : AutoCompleteTextView 控件
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line,字符串数组);


AutoCompleteTextView autoText = (AutoCompleteTextView)findViewById(控件Id);
autoText.setAdapter(adapter);
MultiAutoCompleteTextView mulAutoText = (MultiAutoCompleteTextView)findViewById(控件Id);
mulAutoText.setAdapter(adapter);
mulAutoText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); //完成对字符串按逗号拆分

AutoCompleteTextView和MultiCompleteTextView的区别
刚看到这两个类的时候,发现MultiCompleteTextView要比AutoCompleteTextView多设置了public void setTokenizer (MultiAutoCompleteTextView.Tokenizer t)。但是功能上的区别一下子看不出来。
网上查了下,发现很多文章说区别在于MultiCompleteTextView要设置setTokenizer,不然就会报错。我囧,这也叫区别。

首先MultiCompleteTextView是extends AutoCompleteTextView的。
AutoCompleteTextView可以实现简单的自动完成功能,而MultiCompleteTextView的区别就在于可以设置分隔标记。
MultiCompleteTextView通过public void setTokenizer (MultiAutoCompleteTextView.Tokenizer t)函数,可以设置分隔标记,
有了分隔标记,就可以实现在有分隔符的情况下,将输入的句子进行多次自动完成。
下面对android developers上的一个例子进行解释:
public class CountriesActivity extends Activity 

     protected void onCreate(Bundle savedInstanceState) 
     { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.autocomplete_7); 

         // 将可选内容与ArrayAdapter<String>连接
         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                 android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
         
         //查找控件ID
         MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.edit);

   //将ArrayAdapter<String> 添加到MultiAutoCompleteTextView 对象中
         textView.setAdapter(adapter);

//设置分隔标记, 分隔标记为逗号
         textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 
     } 
     
     //自动完成显示的可选内容
     private static final String[] COUNTRIES = new String[] 
     { 
         "Belgium", "France", "Italy", "Germany", "Spain" 
     }; 
}

解释:如在MultiAutoCompleteTextView 中输入“Be”,则会提示"Belgium", 然后输入分隔符“,”,再输入“Be”,还会提示"Belgium"。
这就是多次提示。而AutoCompleteTextView则不会,AutoCompleteTextView不会对在控件内输入的字符串进行多次拆分。


额外:AutoCompleteTextView和MultiCompleteTextView默认输入2个字符才出现自动完成,通过autoText.setThreshold(1);可以设置为输入一个字符就出现自动完成(即参数“1”)。



2.设置 文字超链接 并且可以点击
 SpannableString ss = new SpannableString("注册");
        ss.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(ButtonActivity.this, "注册成功", 1).show();
}
}, 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        对象控件.setText(ss);
        对象控件.setMovementMethod(LinkMovementMethod.getInstance());
3.判断是什么控件对象
onCheckedChanged监听事件中
buttonView instanceof CheckBox
4设置浏览器中有 进度条效果
加载窗口组件:1、标题栏上的环状进度条 
     2、标题栏上的条状进度条
加载之后仍然是不可见状态,且加载代码必须在setContentView之前设置
requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
分别设置标题栏进度条的可见,并设置当前进度值
setProgressBarVisibility(true);
setProgressBarIndeterminateVisibility(true);
setProgress(3000);
5.Spinner控件在下来选项中有多种控件类型的绑定
每一项数据中又有多条数据,通过键来识别对应的控件,所以采用了List潜逃Map的结构
List<Map<String, Object>> data = new ArrayList<Map<String,Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("img", R.drawable.ic_launcher);
map.put("btnText", "第一项");
map.put("txtText", "北京");
data.add(map);
map = new HashMap<String, Object>();
map.put("img", R.drawable.ic_launcher);
map.put("btnText", "第二项");
map.put("txtText", "上海);
data.add(map);
map = new HashMap<String, Object>();
map.put("img", R.drawable.ic_launcher);
map.put("btnText", "第三项");
map.put("txtText", "重庆");
data.add(map);

SimpleAdapter构造器的参数依次是:
1.数据源、
2.单项数据对应的控件布局文件ID
3.数据源中每项数据的键序列、
4.布局文件中控件ID的序列(对应关系与3一一呼应)
SimpleAdapter adp = new SimpleAdapter(this,
data,
R.layout.item,
new String[]{"img", "btnText", "txtText"},
new int[]{R.id.img, R.id.txt1, R.id.btn1});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值