第八章 高级UI组件

========================ImageView------图像视图==========================
用来展示图片。
  android:scaleType="fixXY"----设置图片的缩放规则横纵占满整个组件//scale 比例n
  android:src="@drawable/bulb_off" ----添加图片资源
  在代码中通过iv.setImageResource(R.drawable.bulb_on);来添加图片资源

=========================RadioButton----单选按钮=========================
嵌套在同一个RadioGroup的RadioButton 可以实现单选效果。
  android:checked="true"---设置为选中状态
为单选按钮添加选中状态改变的监听:

 1  rb1.setOnCheckedChangeListener(new OnCheckedChangeListener() 
 2  {
 3     @Override
 4     public void onCheckedChanged(CompoundButton buttonView,
 5             boolean isChecked) {
 6         // 如果为选中
 7         if (isChecked) 
 8         {
 9             
10         }
11     }
12  });

给RadioGroup添加监听:

 1 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 
 2 {
 3     @Override
 4     public void onCheckedChanged(RadioGroup group, int checkedId) {
 5         //根据checkedId来判断选中的RadioButton
 6         switch (checkedId) {
 7         case R.id.rb_1:
 8             Toast.makeText(MainActivity.this, "111", 0).show();
 9             break;
10         case R.id.rb_2:
11             Toast.makeText(MainActivity.this, "2222", 0).show();
12             break;
13         default:
14             break;
15         }
16     }
17 });

 

 

===============================Checkbox-----多选框===============================
给CheckBox添加选中状态发生改变的监听:new onCheckChangeListener(){}

 


===============================ToggleButton----具有状态显示的Button==================
android:textOn="打开"--------设置选中状态为ture时的文字
android:textOff="关闭"--------设置选中状态为false时的文字
android:checked="false"----------设置选中状态为false

 


===============================ContextMenu ----------- 上下文菜单=========================
可以为组件注册上下文菜单。当组件长摁时,弹出上下文菜单。
静态注册:
1.为组件注册上下文菜单
  registerForContextMenu(img);//register n/v 注册
2.添加(xml)上下文菜单

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
    super.onCreateContextMenu(menu, v, menuInfo);
    getMenuInflater().inflate(R.menu.menu_context,menu);
}

 

自定义菜单资源文件res/menu/menu_context.xml:

 1 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 2       xmlns:app="http://schemas.android.com/apk/res-auto"
 3       xmlns:tools="http://schemas.android.com/tools"
 4       tools:context=".MainActivity">
 5     <item android:id="@+id/itemOpen"
 6           android:title="打开"
 7           android:orderInCategory="1"/>
 8     <item android:id="@+id/itemClose"
 9           android:title="关闭"
10           android:orderInCategory="2"/>
11 </menu>

3.设置ContextMenu的条目选中监听

public boolean onContextItemSelected(MenuItem item)
{
    //根据item的id来判断点击的是哪个条目
    switch (item.getItemId())
    {
        case 10:
        //do something
        break;
        case 11:
        //do something
        break;
        default:
        //do something
        break;
    }
    return super.onContextItemSelected(item);
}

 

动态注册:
1.为组件注册上下文菜单
  registerForContextMenu(img);//register n/v 注册
2.设置ContextMenu

 1 @Override
 2 public void onCreateContextMenu(ContextMenu menu, View v,
 3         ContextMenuInfo menuInfo) 
 4 {
 5     //在代码中动态添加选项
 6     super.onCreateContextMenu(menu, v, menuInfo);
 7     //添加标题头
 8     menu.setHeaderTitle(R.string.ctxmenu_title);
 9     //参数:组id,条目id,排序(数越大越靠后),条目的文字描述
10     menu.add(0, 10, 100, "打开");
11     menu.add(0, 11, 20, "关闭");
12 }



3.设置ContextMenu的条目选中监听

@Override
public boolean onContextItemSelected(MenuItem item) 
{
//根据item的id来判断点击的是哪个条目
    switch (item.getItemId()) {
    case 10:
        //do something
        break;
    case 11:
        //do something
        break;
    default:
        //do something
        break;
    }
    return super.onContextItemSelected(item);
}

 

================ImageButton -----继承于ImageView===============
为按钮添加图片资源:android:src="@drawable/exit"
有点击的效果
为ImageButton添加单击监听

1 ib.setOnClickListener(new OnClickListener() 
2 {
3     public void onClick(View v) 
4     {
5         MainActivity.this.finish();
6     }
7 });
8      

 



===================================MVC UI组件======================================

Spinner------下拉列表
常用属性/方法:
  android:divider="@color/..."
  android:divider="@drawable/..."----分割线样式
  android:dividerHeight="3dp"--------分割线宽度
  android:popupBackground="@android:color/holo_blue_light"----------弹出的背景//popup弹出
  spinner.setSelection()-------------设置默认选中条目

使用:

 1 //
 2 //创建Adapter
 3 //ArrayAdapter参数: 上下文目录, 布局文件(下拉前), 数据源(数组)
 4 //
 5 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
 6         android.R.layout.simple_spinner_item, data);
 7 //
 8 //设置下拉列表(下拉后)的样式
 9 //自定义的 res/layout/spinner_item.xml
10 //
11 adapter.setDropDownViewResource(R.layout.spinner_item);//drop落下v
12 //
13 //spinner加载Adapter
14 //
15 spinner.setAdapter(adapter);

 


自定义布局资源文件 res/layout/spinner_item.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <TextView
3     android:id="@+id/show"
4     android:layout_width="match_parent"
5     android:layout_height="wrap_content"
6     android:background="@android:color/holo_green_light"
7     xmlns:android="http://schemas.android.com/apk/res/android">
8 
9 </TextView>

 

自定义字符串资源文件 res/values/arrays.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <array name="array_strings">
4         <item>新垣结衣</item>
5         <item>长泽雅美</item>
6         <item>崛北真希</item>
7         <item>户田惠梨香</item>
8     </array>
9 </resources>



Java代码中使用: 

1 String[] data = getResources().getStringArray(R.array.array_strings);

    (注意:写在 setContentView(R.layout.activity_main); 之后)


Spinner设置监听:

 1 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
 2 {
 3     @Override
 4     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) //position 位置n
 5     {
 6         Toast.makeText(MainActivity.this, position + 1 +" hahhah", Toast.LENGTH_SHORT).show();
 7     }
 8 
 9     @Override
10     public void onNothingSelected(AdapterView<?> parent)
11     {
12 
13     }
14 });

**注意:// java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner

 

 

AutoCompleteTextView------------------------自动完成文本视图
常用属性:
  android:completionHint="String"--------------提示String
  android:completionThreshold="3"--------------在输入3位时开始提示类容//threshold 入口n

常用方法:
//让AutoCompliteTextView显示提示列表
auto.showDropDown();
//让AutoCompliteTextView关闭提示列表
auto.dismissDropDown();

 

 

ListView----------------列表视图
  显示最后一行:
  android:stackFromBottom="true"
  或者
  listView.setSelection(listView.getBottom)
  或者
  listView.setSelection(adapter.getCount())

ListView设置监听:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)//position位置
    {
        //do something
    }
});

 

posted on 2015-11-22 16:51  starFarming  阅读(213)  评论(0编辑  收藏  举报