赞
踩
1,LinearLayout(线性布局),RelativeLayout(相对布局),FrameLayout(帧布局),AbsoluteLayout(绝对布局),TableLayout(表格布局)。
2,线性布局中的控件属性说明
①android:background,设置UI控件的背景,其值可以是资源文件夹中的图片或者是颜色的十六进制值。
②android:orientation,该属性是线性布局的特有属性,用来指定线性布局的方向,vertical表示垂直线性布局,horizontal表示水平线性布局
③android:layout_width:设置UI控件的宽度,match_parent的含义是设置UI控件的宽度充满父窗体,wrap_content的含义是设置UI控件的宽度随内容的大小变化
④android:id,该属性为UI控件设置一个名字,在源代码程序中可以通过R.id名字的形式来获取这个控件实体
⑤android:src,用来设置图片控件ImmageView的前景图片
⑥android:text,设置UI控件上面显示的文字内容。
android:textSize,设置控件中文字的大小。最好用sp为单位,控件宽度和高度多采用dip做单位
⑦android:textColor,设置字体的颜色,采用八位十六进制数格式为该属性设置值。
⑧android:gravity,设置控件在父容器中的对齐方式,其值可以是水平居中,垂直居中,靠左,靠右
3,相对布局控件属性说明
①android:layout_alignParentBottom,设置UI控件贴紧父元素底部,如需要与父元素的底部对齐,将其值设为true,否则为false。
②android:layout_alignParentRight,设置UI控件紧贴父元素的右边,其值设置同上属性
③android:layout_centerHorizontal,设置控件在相对布局中水平居中
④android:layout_centerInParent,设置父控件相对于父元素完全居中
⑤android:layout_alignParentLeft,设置控件贴紧父元素的左边缘
⑥android:layout_alignParentTop,设置控件贴紧父元素的上边缘
以上属性值均为true或false
android:layout_below,设置控件在某元素的下方
android:layout_above,设置控件在某元素的上方
android:layout_toRightOf,设置控件在某元素的右边
android:layout_alignTop,设置控件本元素的上边缘和某元素大的上边缘对齐
以上属性的属性值必须为其他控件的id引用名。
4,帧布局中控件属性说明
android:layout_gravity,该属性用于设置当前控件在父元素中的对齐方式,若其值为center_vertical,表示当前控件在父元素中垂直居中,若其值为center_horizontal表示当前控件在父元素中水平居中,若两个值并列使用,则表示控件对父元素既垂直居中有水平居中。
android:layout_gravity=‘center_vertical|center_horizontal’
②android:visibility,设置控件的可见性,该属性有三个值,visible,gone,invisible.visible代表控件可见,invisible代表控件不可见,但占据布局位置,gone带代表不可见也而且不占据布局位置。
1,开发中的常用基础控件包括TextView,Button,EditText,ImageView,RadioBuutton,CheckBox,ProgressBar。
2,文本控件TextView
3,编辑框控件EditText
4,按钮控件Button
继承自aandroid.widget.TextView类,位于android.widget包中。它常用的子类有CheckBox,RadioButton,ToggleButton.
其常用属性为android:click 设置当按钮点击时执行的方法名
5,图片控件ImageView
6,单选按钮RadioButton
一般在RadioGroup中声明,用于提供两个或多个互斥选项,即在一组按钮中只能选择一个。要监听单选按钮状态的更改,需要给他所在的RadioGroup添加setOnCheckChangeListener()监听器。
7,进度条控件ProgressBar
一般在应用程序中用来显示用户某个耗时操作的进度百分比
8,高级控件
常用的几个高级控件都直接或间接地继承了android.view.ViewGroup类。常用地高级控件主要包括ListView,GridView,Spinner,AutoCompleteTextView,ExpandableListView,Gallery等。
9,高级控件案例ListView控件是以列表地形式显示资源,Spinner是以下拉列表地形式显示数据资源,Grid View、是以网格地形式显示数据资源。
①用户单击控件条目事件。为控件加载setOnTremClickListener监听,重写onItemClick()方法
②用户长按事件。为控件加载setOnItemLongClickListener监听,重写onItemLongClick()方法。
public class MyListView extends Activity{
String[] strs =new String[] {"first", "second", "third", "fourth","fifth"//定义一个String数组用来显示ListView的内容
private ListView lv;
@Override
publicvoid onCreate(Bundle savedInstanceState)}
super.onCreate(savedlnstanceState);
setContent View(R.layout.main);
//得到ListView对象的引用
lv = (ListView) findViewBy!d(R.id.Iv);
//为ListView设置Adapter来绑定数据
lv. set Adapter(ne w Array AdapterくString>(this,
android.R.layout.simple 一list一item j,strs));
}
}
1,Toast提示框的创建
只需要调用Toast类的静态方法makeText即可创建默认格式的Toast提示框。makeText()方法包含三个参数,第一个参数指定上下文环境,一般使用getApplicationContext()方法获取当前程序的上下文,第二个参数是弹出的提示框中显示的提示文本,第三个参数是Toast提示框显示的时间,0,代表短时间,1代表长时间。
例:Toast.makeText(getApplicationContext(),“文本”,0).show();
//设置显示的位置,该方法有三个参数,第一个参数是显示的位置,第二个参数是距离该位置的x方向的。
toast.setGravity(Gravity.LEFT,20,30); toast.show();
//定义一个Toast的对象
Toast toast=Toast.makeText(getApplicationContext(), ”图片 toast", 0);
//定义一个ImageView的对象,构造的时候需要上下文作为参数
ImageView imageView=new ImageView(MainActivity.this);
"设置ImageView的源
image View.setImageResource(R.drawable.ic」auncher);
//获取当前的Toast对象的View并转换为线性布局
LinearLayout layout=(LinearLayout) toast.getView();
//ImageView添加到线性布局中
layout.addView(imageView);
"显示Toast
toast.show();
3,常用的设置对话框的方法
setTitle:为对话框设置标题
setIcon:为对话框设置图标
setMessage:为对话框设置内容
setView:为对话框设置自定义样式
setItem:设置对话框要显示一个list,一般用于显示几个命令
setMultiChoiceItems:用来设置对话框显示一系列的复选框
setNeutralBuutton:普通按钮
setPositibeButton:一般用作确定按钮
setNegativeButton:一般用作取消按钮
setCancelable:设置是否模态,如果为模态,用户必须进行操作
creat:创建对话框
show:显示对话框
1.警告对话框
//创建对话框的对象
AlertDialog.Builder builder=new Builder(context);
//设置对话框的标题
builder.setTitle(“提示”);
//设置对话框的内容
builder.setMessage(“是否要退出”);
//设置一个确定按钮, 并使用匿名内部类的方式创建点击事件
builder.setPositiveButton(“确定”,new DialogInterface.OnClickListener(O{
public void onClick(DialogInterface dialog, int which){
//弹出 一个点击确定的提示框
Toast.makeText(getApplicationContext), “点击确定”,0).show();
}
});
//设置 一个取消按钮, 并使用匿名内部类的方式创建点击事件
builder.setNegativeButton(“取消”, new DialogInterface.OnClickListenerO {
public void onClick(DialogInterface dialog, int which){
//弹出一个点击取消的提示信息
Toast.makeText(getApplicationContext(),“点击取消” ,1).showO;
1
});
//创建对话框并通过showO方法使其显示出来
builder.create().show();
2. 进度对话框
//创建 一个进度对话框的对象
ProgressDialog pdd=new ProgressDialog(this);
//设置进度对话框的进度条为水平方向的对话框
pdd.setProgressStyle(ProgressDialog.STYLE_ HORIZONTAL);
//设置对话框的信息
pdd.setMessage(“正在下载。。。请稍候”);
//设置对话框的标题
pdd.setTitle(“下载中”);
//设置对话框中进度条的最大值
pdd.setMax(100); (用货
//设置当前的进度
pdd.setProgress(40);
//显示进度对话框
pdd.show);
3. 日期选择对话框
//创建一个日历对象获取当前的日期
Calendar c=Calendar.getInstanceO);
//获取日期中的年
int y=c.get(Calendar.YEAR);
11获取日期中的月
int m=c.get(Calendar.MONTH);
//获取日期中的天
int d=c.get(Calendar.DAY_OF_MONTH);
/*定义一个日期选择对话框DatePickerDialog, 构造方法需要五个参数,第一个参数是上下文
环境, 第二个参数是日期变动的回调函数, 就是当对话框中的日期改变时所执行的函数, 第三个是
参数是默认显示的年, 第四个参数是默认显示的月, 第五个参数是默认显示的天
DatePickerDialog da=new DatePickerDialog(this,null,y,m,d);
//让对话框显示出来 I
请输入名字
da.show);
4.自定义对话框
创建自定义对话框需要自定义的布局文件,如图5-2
所示。
//将布局文件转化View
final View view=View.inflate(this, R.layout.dio, null);
//设置builder显示的View
builder.setView(view);
定义一个确定按钮 图5-2 自定义对话框布局文件
builder.setPositiveButton(“确定”, new DialogInterface. OnClickListenerO
一
//设置确定按钮的点击方法
public void onClick(DialogInterface dialog, int which){
//获取自定义布局文件中的EditeText
EditText el=(EditText)view.findViewById(R.id.el);
//获取EditText中输入的字符串
String yhm=el.getText().toString();
//弹出一个提示框,显示输入的用户名
Toast.makeText(getApplicationContext(),“输入的用户名是”+yhm,0).show();
}
}};
//创建并且显示对话框
builder.create().show();
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:background="@drawable/sky" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="注册" android:textColor="@color/teal_200" android:textSize="25dp" android:gravity="center" android:textStyle="bold" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/white"/> <LinearLayout android:id="@+id/w1" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="QQ" android:src="@drawable/qq" android:textColor="@color/teal_200" android:textSize="20sp" /> <View android:layout_width="2dp" android:layout_height="match_parent" android:background="@color/white"/> <ImageView android:layout_width="wrap_content" android:layout_height="97dp" android:layout_weight="1" android:gravity="center" android:text="微信" android:src="@drawable/weixin" android:textColor="@color/teal_200" android:textSize="20sp" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/white"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/youxiang"> </ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="使用邮箱登录" android:textSize="30sp" > </TextView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓 名" android:textColor="@color/teal_200" android:textSize="20sp"> </TextView> <EditText android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:hint="请输入姓名"> <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="邮 箱" android:textColor="@color/teal_200" android:textSize="20sp"> </TextView> <EditText android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:hint="请输入邮箱"> <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密 码" android:textColor="@color/teal_200" android:textSize="20sp"> </TextView> <EditText android:id="@+id/password_toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:hint="请输入密码"> <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓 别" android:textColor="@color/teal_200" android:textSize="20sp"> </TextView> <RadioGroup android:layout_marginLeft="30dp" android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio_man" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:textColor="@color/teal_200" android:text="男"/> <RadioButton android:id="@+id/radio_woman" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/teal_200" android:text="女"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="爱 好" android:textColor="@color/teal_200" android:textSize="20sp"/> <CheckBox android:layout_marginLeft="30dp" android:id="@+id/cb_game" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="游戏"/> <CheckBox android:layout_marginLeft="30dp" android:id="@+id/cb_basketball" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="篮球"/> <CheckBox android:layout_marginLeft="30dp" android:id="@+id/cb_music" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="音乐"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> </LinearLayout> <TextView android:layout_width="match_parent" android:layout_height="81dp" android:gravity="center" android:text="提交" android:textColor="@color/teal_200" android:textSize="25dp" android:textStyle="bold" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/white"/> </LinearLayout>
②MainActivity.java
package com.example.email; import androidx.appcompat.app.AppCompatActivity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private MainActivity2 tel; private EditText Name; private EditText Phone; private TextView Show; private Button mBtnAdd; private Button mBtnQuery; private Button mBtnUpdate; private Button mBtnDelete; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tel = new MainActivity2(this); Name = (EditText) findViewById(R.id.name); Phone = (EditText) findViewById(R.id.phone); Show = (TextView) findViewById(R.id.show); mBtnAdd = (Button) findViewById(R.id.insert); mBtnQuery = (Button) findViewById(R.id.query); mBtnUpdate = (Button) findViewById(R.id.update); mBtnDelete = (Button) findViewById(R.id.delete); mBtnAdd.setOnClickListener(this); mBtnQuery.setOnClickListener(this); mBtnUpdate.setOnClickListener(this); mBtnDelete.setOnClickListener(this); } @Override public void onClick(View v) { String name; String phone; SQLiteDatabase db; ContentValues values; switch (v.getId()) { case R.id.insert: //添加数据 name = Name.getText().toString(); phone = Phone.getText().toString(); db = tel.getWritableDatabase();//获取可读写SQLiteDatabse对象 values = new ContentValues(); // 创建ContentValues对象 values.put("name", name); // 将数据添加到ContentValues对象 values.put("phone", phone); db.insert("information", null, values); Toast.makeText(this, "信息已添加", Toast.LENGTH_SHORT).show(); db.close(); break; case R.id.query: //查询数据 db = tel.getReadableDatabase(); Cursor cursor = db.query("information", null, null, null, null, null, null); if (cursor.getCount() == 0) { Show.setText(""); Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show(); } else { cursor.moveToFirst(); Show.setText("Name : " + cursor.getString(1) + " ;Tel : " + cursor.getString(2)); } while (cursor.moveToNext()) { Show.append("\n" + "Name : " + cursor.getString(1) + " ;Tel : " + cursor.getString(2)); } cursor.close(); db.close(); break; case R.id.update: //更新数据 db = tel.getWritableDatabase(); values = new ContentValues(); // 要修改的数据 values.put("phone", phone = Phone.getText().toString()); db.update("information", values, "name=?", new String[]{Name.getText().toString()}); // 更新并得到行数 Toast.makeText(this, "信息已修改", Toast.LENGTH_SHORT).show(); db.close(); break; case R.id.delete: //删除数据 db = tel.getWritableDatabase(); name = Name.getText().toString().trim(); phone = Phone.getText().toString().trim(); if (name.equals("") || phone.equals("")){ //联系人信息不能为空 Toast.makeText(this,"联系人信息删除失败",Toast.LENGTH_SHORT).show(); } else { db.execSQL("delete from information where name=? and phone=?", new Object[]{name, phone}); Toast.makeText(this,"联系人信息删除成功",Toast.LENGTH_SHORT).show(); } db.close(); break; } } }
③MainActivity2.java
package com.example.email; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MainActivity2 extends SQLiteOpenHelper { public MainActivity2(Context context) { super(context, "itcast.db", null, 1); } //当数据库第一次创建的时候执行 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), phone VARCHAR(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。