六、edittext
要使用editext的功能 需要在activity中先声明edittext。private Edittext mEdittext;
然后还需要找到这个控件。
常用属性有android:textSize="16sp"
android:textColor="#ff0066"
android:background="@drawable/bg_btn3"
android:drawableLeft="@drawable/user"是指图片在编辑框的位置
android:drawablePadding="5dp"是指距离图片的空隙多大
android:maxLines="1"最大行数
android:hint="用户名" 默认文字 ,输入内容时自动消失
android:inputType="textPassword"输入内容的文字类型
添加编辑框的监听器
mEtUserName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d("edittext",s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
七、RadioButton
<RadioGroup
android:id="@+id/rg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
android:button="@null"单选框里的按钮样式
android:checked="true"默认状态下选中
android:background="@drawable/selector_orange_radiobutton"背景样式可以自己设置例如
<shape>
<solid android:color="#AA6600"/>
<corners android:radius="20dp"/>
</shape>
</item>
<item android:state_checked="false">
<shape>
<stroke android:width="1dp"
android:color="#aa6600"/>
<corners android:radius="20dp"/>
</shape>
</item>
设置监听器mRg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radioButton =group.findViewById(checkedId);
Toast.makeText(RadioButtonActivity.this,radioButton.getText(),Toast.LENGTH_SHORT);
}
});
八、CheckBox
基本属性
android:layout_below="@+id/tv_title"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cb1"
android:text="android"
android:textSize="20sp"
android:paddingLeft="10dp"
android:button="@drawable/bg_checkbox"设置选中框的样式。在CheckBox中使用的是padding 而不是drawableLeft
例如
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="false"
android:drawable="@drawable/uncheck"
/>
<item
android:state_checked="true"
android:drawable="@drawable/check"
/>
</selector>
设置监听器
mCb5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(CheckBoxActivity.this,isChecked?"5选中":"5未选中",Toast.LENGTH_SHORT).show();
}
});
mCb6.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(CheckBoxActivity.this,isChecked?"6选中":"6未选中",Toast.LENGTH_SHORT).show();
}
});
mCb7.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(CheckBoxActivity.this,isChecked?"7选中":"7未选中",Toast.LENGTH_SHORT).show();
}
});
}
}
[if !supportLists]九、[endif]ImageView
基本属性
android:layout_width="240dp"
android:layout_height="100dp"
android:background="#ff9900"
android:src="@drawable/skadi"
android:scaleType="fitXY" 图片填充类型
fitXY撑满控件,宽高比可能发生变化
fitCenter保持宽高比缩放,直至能完全显示
centerCrop保持宽高比缩放,直至充满控件,裁剪显示
从网上获取图片并显示:
需要先下载第三方的库,可以通过GitHub搜索glid
点进去,通过阅读
了解明白如何下载第三方库,可以使用AS带的Gradle自动安装第三方的库,复制当中没有的代码到build.gradle中,在上方Sync Now 便会自动下载,可能速度有点慢。
如何使用,通过阅读
通过这些文档知道了解如何使用第三方库
例
mIv4=findViewById(R.id.iv4);Glide.with(this).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fa0.att.hudong.com%2F30%2F29%2F01300000201438121627296084016.jpg&refer=http%3A%2F%2Fa0.att.hudong.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1616566061&t=161ce3168283cd685b9e4aee7533f2d4").into(mIv4);
当中也许会出现报错,说没有权限,这时候我们需要到AndroidManifest.xml中添加Internet权限
<uses-permission android:name="android.permission.INTERNET"/>
十、ListView
常用属性
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv1"
android:divider="@color/colorAccent"
android:dividerHeight="10dp"每个元素的间距
android:listSelector="@drawable/list_item"被选中时候的样式
需要一个Adapter,来显示列表的样式,所以要新建一个class 继承BaseAdapter
public class MyListAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mLayoutInflater; public MyListAdapter(Context context){ this.mContext=context; mLayoutInflater=LayoutInflater.from(context); }//给成员变量初始化值 @Override public int getCount() { return 10;//列表的长度 } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } static class ViewHolder{ public ImageView imageView; public TextView tvtitle,tvtime,tvcontent; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder=null; if (convertView==null) { convertView = mLayoutInflater.inflate(R.layout.layout_list_item, null); holder = new ViewHolder(); holder.imageView = convertView.findViewById(R.id.list_iv); holder.tvtitle = convertView.findViewById(R.id.tv_titl); holder.tvcontent = convertView.findViewById(R.id.tv_content); holder.tvtime = convertView.findViewById(R.id.tv_time); convertView.setTag(holder); } else { holder= (ViewHolder) convertView.getTag(); } //给控件赋值 holder.tvtitle.setText("这是标题"); holder.tvtime.setText("2088-88-88"); holder.tvcontent.setText("这是内容"); Glide.with(mContext).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fa0.att.hudong.com%2F30%2F29%2F01300000201438121627296084016.jpg&refer=http%3A%2F%2Fa0.att.hudong.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1616566061&t=161ce3168283cd685b9e4aee7533f2d4").into(holder.imageView); return convertView; }}
mLv1.setAdapter(new MyListAdapter(ListViewActivity.this)); mLv1.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(ListViewActivity.this,"pos:"+position,Toast.LENGTH_SHORT).show(); } }); }}