Android的文本系列的控件

#### 文本系列的控件

文本框、按钮、输入框、单选按钮、多选按钮

##### TextView

处理文本显示的控件

 

android:text="@string/hello_world" 设置文本

    android:textColor="#ff0000" 文本颜色

    android:textSize="30sp" 文本大小(单位用sp)

android:shadowColor="#ffff00" 阴影的颜色

    android:shadowRadius="3" 阴影的半径

android:textScaleX="0.5" 文本拉伸和收缩

android:textStyle="italic" 设置样式,bold粗体,italic斜体

android:drawableLeft="@drawable/ic_launcher" 设置文本上

的图标drawableLeft左侧图标,drawableTop顶部图标,

drawableRight右侧图标,drawableBottom底部图标

 

android:singleLine="true"表示单行显示

android:lines="5" 限定显示行数

android:maxLine="" 最大行数

跑马灯设置

android:ellipsize="marquee" 对过长文本的截取方式start在开头加"..." midle在中间加"..."

end在末尾加 marquee表示跑马灯

    android:marqueeRepeatLimit="marquee_forever" 设置跑马灯的重复

次数 1 2 3 marquee_forever表示一直重复

跑马灯,要让文本可以运动,需要让文本框得到焦点,任何视图得到焦点有两种:

第一种,在xml中使用

android:focusable="true"

    android:focusableInTouchMode="true"

第二种,在java中选中控件

tv.setSelected(true);

##### Button

继承自TextView

 

设置点击监听

 

定义监听器类(在Activity中定义内部类)

class MyClickListener implements OnClickListener{

    

     int count = 0;

     //设置监听器的控件被点击时触发

@Override

public void onClick(View v) {

count++;

tv.setText("按钮被点击了"+count);

}

    

    }

 

onCreate方法中设置监听器:

Button btn = (Button) findViewById(R.id.m_btn);

//设置点击监听的方法(需要监听器对象)

    btn.setOnClickListener(new MyClickListener());

##### 关于视图的显示和隐藏

 

android:visiblity="visible" visible可见的 invisible不可见会占位置 gone不可见不占位置

该属性在java中使用如下方式设置

btnGone.setVisibility(View.VISIBLE); View.INVISIBLE  View.GONE

#### 长按监听

需要实现OnLongClickListener接口

 

private OnLongClickListener mLongClick = new OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

tvShow.setText("按钮被长按了");

//false表示不拦截事件

//true表示拦截事件

return true;

}

};

注意onLongClick的返回值,false不拦截事件,true拦截事件

 

通过视图的setOnLongClickListener来设置监听

 

btn1.setOnLongClickListener(mLongClick);

#### Logcat的使用

主要有5个等级的信息打印

 

Log.v(tag,msg) 最全的详细日志

Log.d(tab,msg) debug级别的打印

Log.i(tab,msg) info级别

Log.w(tab,msg) warn级别

Log.e(tab,msg) error级别的打印

如果需要导出机器中的日志可以使用adb指令

 

adb logcat -v time>D:\log201704201032.txt

停止打印用Ctrl+C

 

#### EditText

 

android:inputType="textPassword"设置输入类型,帮助输入法显示合适的键盘类型

android:maxLength="5" 最大的宽度有多少个字符,宽必须是wrap_content

android:ems="5"多少个字符的宽度

android:hint="@string/et_hint"输入框提示

设置输入的光标位置

 

et.setSelection(index); 设置输入位置.起始光标和结束光标位置一样

 

监听键盘的Enter键

 

    et.setOnEditorActionListener(new OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

if(v.getId() == R.id.et1){

Log.e("m_tag","输入框输入完毕");

}

Log.e("m_tag",event.getKeyCode()+"===="+v.getText());

//处理Enter按下之后的逻辑

return false;

}

});

 

内容的处理

 

Editable str = et.getText();

str.append("2");

str.insert(where, text)

s.delete(start, end);

监听文本变化

 

// 监听输入的内容变化情况

et.addTextChangedListener(new TextWatcher() {

 

//改变中

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

Log.e("m_tag", "onTextChanged:" + s);

}

 

//改变前

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

Log.e("m_tag", "beforeTextChanged:" + s);

}

 

//改变后

@Override

public void afterTextChanged(Editable s) {

Log.e("m_tag", "afterTextChanged:" + s);

if (s.length() > 6) {

s.delete(6, s.length());

}

}

});

#### 单选按钮和多选按钮

 

android:checked="true"设置默认选中状态 true为选中 false不选中

android:button="按钮资源" 可以控制选择框前面的按钮 android:button="@null" 表示去掉前面的按钮

 

CheckBox

 

xml中:

 

        android:id="@+id/ch_moves"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:checked="false"

        android:text="看电影" />

java中可以监听选择变化

/**

 * 选择框变化的监听器(单个选择框)

 */

private CompoundButton.OnCheckedChangeListener onCkeckChange = new

CompoundButton.OnCheckedChangeListener() {

 

@Override

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

if (isChecked) {

list.add(buttonView.getText().toString());

setTitle(buttonView.getText() + "被选中");

} else {

list.remove(buttonView.getText().toString());

setTitle(buttonView.getText() + "被取消选中");

}

}

};

设置监听

((CheckBox) findViewById(R.id.ch_moves)).setOnCheckedChangeListener(onCkeckChange);

RadioButton和RadioGroup,RadioGroup继承自LinearLayout

 

        android:id="@+id/sex_group"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:orientation="vertical" >

 

        

            android:id="@+id/r_man"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="男" />

 

        

            android:id="@+id/r_woman"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="女" />

    

java中可以监听选择变化

private RadioGroup.OnCheckedChangeListener onGroupCheckChange = new

RadioGroup.OnCheckedChangeListener() {

 

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

RadioButton btn = (RadioButton) findViewById(checkedId);

setTitle("选中了:"+btn.getText());

}

};

设置监听

sexGroup = (RadioGroup) findViewById(R.id.sex_group);

sexGroup.setOnCheckedChangeListener(onGroupCheckChange);

获取结果

int id = sexGroup.getCheckedRadioButtonId();

清除所有的选中状态

 

sexGroup.clearCheck();


你可能感兴趣的:(Android基础)