您的位置:首页 > 其它

安卓第三天笔记--通知-进度条-时期

2016-02-25 23:27 429 查看

安卓第三天笔记--通知-进度条-时期

1.通知Notification

通知就是在是上方的状态栏弹出通知消息



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<Button

android:onClick="send"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="发送通知" />

</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/tv"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="这是通知的跳转页面"/>

<ImageView

android:id="@+id/iv"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:src="@drawable/swift"/>

</LinearLayout>


/**

* 收到通知时,点击通知打开的Activity

* @author 刘楠

*

* 2016-2-19下午11:03:44

*/

public class OtherActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.other);

}

}

ManiActivity

/**

* 发送通知

* @author 刘楠

*

* 2016-2-19下午7:20:05

*/

public class MainActivity extends Activity {

private NotificationManager manager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取通知管理器

manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

}

/**

* 发送通知

* @param v

*/

@SuppressLint("NewApi")

public void send(View v){

//创建一个启动的Intent意图

Intent intent = new Intent();

intent.setClass(this, OtherActivity.class);

//打开A description of an Intent and target action to perform with it

PendingIntent pendingIntent =PendingIntent.getActivity(this, 0, intent, 0);

//建立通知

Notification notification = new Notification.Builder(this)

//设置打开通知

.setAutoCancel(true)

//状态栏显示的信息

.setTicker("状态栏显示的信息")

//设置通知的图标

.setSmallIcon(R.drawable.notify)

//设置内容标题

.setContentTitle("一条新的通知")

//设置通知的内容

.setContentText("恭喜您,您加薪了,工资增加20%")

.setContentIntent(pendingIntent)

//设置通知的声音

.build();

//发送一个通知

manager.notify(0, notification);

}

}


2.TitleProgressBar





<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"

android:layout_width="match_parent"

android:layout_height="match_parent">

<Button

android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="显示"

/>

<Button

android:id="@+id/btn2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="隐藏"

/>

</LinearLayout>


/**

* 标题栏上方显示进度条

* @author 刘楠

*

* 2016-2-19下午11:12:21

*/

public class MainActivity extends Activity {

private Button btn1;

private Button btn2;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_PROGRESS);

//requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.activity_main);

btn1 = (Button) findViewById(R.id.btn1);

btn2 = (Button) findViewById(R.id.btn2);

btn1.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View source)

{

//显示不带进度的进度条

setProgressBarIndeterminateVisibility(true);

//显示带进度的进度条

setProgressBarVisibility(true);

//设置进度条的进度

setProgress(4500);

}

});

btn2.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View source)

{

//隐藏不带进度的进度条

setProgressBarIndeterminateVisibility(false);

//隐藏带进度的进度条

setProgressBarVisibility(false);

}

});

}

}


3.SeekBar--拖动改变图片的透明度



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity" >

<ImageView

android:id="@+id/iv"

android:layout_width="match_parent"

android:layout_height="240dp"

android:src="@drawable/lijiang"

android:alpha="1"/>

<SeekBar

android:id="@+id/seekbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:max="255"

android:progress="255"

android:thumb="@drawable/ic_launcher"

/>

<TextView

android:gravity="center_horizontal"

android:id="@+id/tv"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>


/**

* SeekBar

* 拖动SeekBar来改变图片的透明度

* @author 刘楠

*

* 2016-2-19下午11:09:43

*/

public class MainActivity extends Activity {

private ImageView iv;

private SeekBar seekbar;

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv = (ImageView) findViewById(R.id.iv);

seekbar = (SeekBar) findViewById(R.id.seekbar);

tv = (TextView) findViewById(R.id.tv);

seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

tv.setText(seekBar.getProgress()+"");

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

tv.setText(seekBar.getProgress()+"");

}

@Override

public void onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

tv.setText(seekBar.getProgress()+"");

iv.setImageAlpha(progress);

}

});

}

}


4.RationBar---使用星星做为进度条,评价是常用



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity" >

<ImageView

android:id="@+id/iv"

android:layout_width="match_parent"

android:layout_height="240dp"

android:src="@drawable/lijiang"

android:alpha="1"/>

<RatingBar

android:id="@+id/ratingbar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:max="255"

android:progress="255"

android:numStars="5"

android:stepSize="0.5"/>

<TextView

android:gravity="center_horizontal"

android:id="@+id/tv"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>


/**

* 使用星星做为进度条

* @author 刘楠

*

* 2016-2-19下午11:14:00

*/

public class MainActivity extends Activity {

private ImageView iv;

private RatingBar ratingbar;

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv = (ImageView) findViewById(R.id.iv);

ratingbar = (RatingBar) findViewById(R.id.ratingbar);

ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

@SuppressLint("NewApi")

@Override

public void onRatingChanged(RatingBar ratingBar, float rating,

boolean fromUser) {

iv.setImageAlpha((int) (rating*255/5));

}

});

}

}


5.选项卡



<?xml version="1.0" encoding="utf-8"?>

<TabHost

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@android:id/tabhost"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_weight="1">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TabWidget

android:id="@android:id/tabs"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

<FrameLayout

android:id="@android:id/tabcontent"

android:layout_width="match_parent"

android:layout_height="match_parent">

<!-- 定义第一个标签页的内容 -->

<LinearLayout

android:id="@+id/tab01"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女儿国国王 - 2012/12/12"

android:textSize="11pt" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="东海龙女 - 2012/12/18"

android:textSize="11pt" />

</LinearLayout>

<!-- 定义第二个标签页的内容 -->

<LinearLayout

android:id="@+id/tab02"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="白骨精  - 2012/08/12"

android:textSize="11pt" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="蜘蛛精 - 2012/09/20"

android:textSize="11pt" />

</LinearLayout>

<!-- 定义第三个标签页的内容 -->

<LinearLayout

android:id="@+id/tab03"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:textSize="11pt">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="孙悟空 - 2012/09/19"

android:textSize="11pt" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="猪八戒  - 2012/10/12"

android:textSize="11pt" />

</LinearLayout>

</FrameLayout>

</LinearLayout>

</TabHost>


/**

* 使用选项卡,

* Activity要继承TabActivity

*

* @author 刘楠

*

* 2016-2-19下午11:16:12

*/

public class MainActivity extends TabActivity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 获取该Activity里面的TabHost组件

TabHost tabHost = getTabHost();

// 创建第一个Tab页

TabHost.TabSpec tab1 = tabHost.newTabSpec("tab1")

.setIndicator("已接电话") // 设置标题

.setContent(R.id.tab01); //设置内容

// 添加第一个标签页

tabHost.addTab(tab1);

TabHost.TabSpec tab2 = tabHost.newTabSpec("tab2")

// 在标签标题上放置图标

.setIndicator("呼出电话", getResources()

.getDrawable(R.drawable.ic_launcher))

.setContent(R.id.tab02);

// 添加第二个标签页

tabHost.addTab(tab2);

TabHost.TabSpec tab3 = tabHost.newTabSpec("tab3")

.setIndicator("未接电话")

.setContent(R.id.tab03);

// 添加第三个标签页

tabHost.addTab(tab3);

}

}


7.ViewFlipper



使用ViewFlipper来播放图片 这个控件继承了ViewAnimator

调用showPrevious显示上一张

showNext();显示下一张

startFlipping();开始自动播放

stopFlipping();停止播放

设置进入的动画效果与方向

viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);

设置切换下一张时的动画效果与方向

viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

<ViewFlipper

android:id="@+id/details"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:flipInterval="2000"

>

<ImageView

android:src="@drawable/android"

android:layout_width="match_parent"

android:layout_height="wrap_content">

</ImageView>

<ImageView

android:src="@drawable/java"

android:layout_width="match_parent"

android:layout_height="wrap_content">

</ImageView>

<ImageView

android:src="@drawable/javaee"

android:layout_width="match_parent"

android:layout_height="wrap_content">

</ImageView>

</ViewFlipper>

<Button

android:text="<"

android:onClick="prev"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_alignParentLeft="true"/>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerInParent="true"

android:onClick="auto"

android:text="自动播放"/>

<Button

android:text=">"

android:onClick="next"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_alignParentRight="true"/>

</RelativeLayout>


/**

* 使用ViewFlipper来播放图片 这个控件继承了ViewAnimator

*

* 调用showPrevious显示上一张

* showNext();显示下一张

startFlipping();开始自动播放

stopFlipping();停止播放

设置进入的动画效果与方向

viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);

设置切换下一张时的动画效果与方向

viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);

* @author 刘楠

*

* 2016-2-19下午11:19:40

*/

public class MainActivity extends Activity {

private ViewFlipper viewFlipper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

viewFlipper = (ViewFlipper) findViewById(R.id.details);

}

/*

* 上一个

*/

public void prev(View v){

viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);

viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);

viewFlipper.showPrevious();

viewFlipper.stopFlipping();

}

/*

* 下一个

*/

public void next(View v){

viewFlipper.setInAnimation(this, android.R.anim.slide_in_left);

viewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);

viewFlipper.showNext();

viewFlipper.stopFlipping();

}

/*

* 自动播放

*/

public void auto(View v){

viewFlipper.setInAnimation(this, android.R.anim.slide_in_left);

viewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);

viewFlipper.startFlipping();

}

}


8.TextSwitch

使用时要建立一个工厂,返回必须为TextView



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<TextSwitcher

android:id="@+id/textSwicher"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:inAnimation="@android:anim/slide_in_left"

android:outAnimation="@android:anim/slide_out_right"

android:onClick="next"/>

</LinearLayout>


/**

* TextSwitcher继承 ViewSwitcher继承ViewAnimator

* 使用时要建立一个工厂

*

* @author 刘楠

*

* 2016-2-19下午11:23:23

*/

public class MainActivity extends Activity {

private TextSwitcher textSwicher;

private String [] strs = {

"疯狂JAVA讲义",

"疯狂Andorid讲义",

"疯狂XML讲义",

"疯狂Ajax讲义",

"疯狂JAVA EE讲义"

};

private int cusStr=0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textSwicher = (TextSwitcher) findViewById(R.id.textSwicher);

//设置工厂

textSwicher.setFactory(new ViewFactory() {

@Override

public View makeView() {

TextView tv= new TextView(MainActivity.this);

tv.setTextSize(40);

tv.setTextColor(Color.MAGENTA);

return tv;

}

});

}

public void next(View view){

textSwicher.setText(strs[cusStr++%strs.length]);

}

}


9.Data类控件



CalendarView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.itheima.calendarview.MainActivity">

<TextView
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp"
android:textColor="#66ff0000"
android:text="请选择日期"/>

<CalendarView
android:id="@+id/cv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:firstDayOfWeek="1"
android:shownWeekCount="4"
android:selectedWeekBackgroundColor="#aff"
android:focusedMonthDateColor="#f00"
android:weekSeparatorLineColor="#ff0"
android:unfocusedMonthDateColor="#f9f">

</CalendarView>

<TextView
android:id="@+id/tv"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp"
android:textColor="#66ff0000"/>

</LinearLayout>


public class MainActivity extends AppCompatActivity {

private CalendarView cv;

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

cv = (CalendarView) findViewById(R.id.cv);

tv = (TextView) findViewById(R.id.tv);

//设置监听器

cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {

@Override

public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {

//显示用户选择日期

Toast.makeText(MainActivity.this,year+"年"+month+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();

}

});

}

}


DatePicker与TimePicker



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:orientation="vertical"

tools:context="com.itheima.datetimepicker.MainActivity">

<TextView

android:gravity="center_horizontal"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textSize="28sp"

android:text="请选择日期"/>

<DatePicker

android:id="@+id/dataPicker"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:calendarViewShown="true"

android:calendarTextColor="@color/colorAccent"

android:layout_gravity="center_horizontal"

android:startYear="2000"

android:endYear="2020"

android:spinnersShown="true">

</DatePicker>

<TimePicker

android:id="@+id/timePicker"

android:layout_width="match_parent"

android:layout_height="wrap_content"

>

</TimePicker>

<EditText

android:id="@+id/et_show"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:editable="false"

android:cursorVisible="false"/>

</LinearLayout>


public class MainActivity extends AppCompatActivity {

private DatePicker dataPicker;

private TimePicker timePicker;

private EditText et_show;

private int year;

private int month;

private int day;

private int hour;

private int minute;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

dataPicker = (DatePicker) findViewById(R.id.dataPicker);

timePicker = (TimePicker) findViewById(R.id.timePicker);

et_show = (EditText) findViewById(R.id.et_show);

/*

获取当前时间

*/

Calendar calendar = Calendar.getInstance();

year =calendar.get(Calendar.YEAR);

month =calendar.get(Calendar.MONTH);

day =calendar.get(Calendar.DAY_OF_MONTH);

hour =calendar.get(Calendar.HOUR_OF_DAY);

minute =calendar.get(Calendar.MINUTE);

/*

初始化日期DataPicker组件

*/

dataPicker.init(year, month, day, new DatePicker.OnDateChangedListener() {

@Override

public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

MainActivity.this.year=year;

MainActivity.this.month = monthOfYear;

MainActivity.this.day = dayOfMonth;

showDate(year,month,day,hour,minute);

}

});

/*

设置监听器

*/

timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {

@Override

public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {

MainActivity.this.hour=hourOfDay;

MainActivity.this.minute = minute;

showDate(year,month,day,hour,minute);

}

});

}

private void showDate(int year,int month,int day,int hour,int minute){

et_show.setText("日期:"+year+"年"+month+"月"+day+"月"+hour+"时"+minute+"分");

}

}


10.SearchView





<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:orientation="vertical"

tools:context="com.itheima.searchview.MainActivity">

<SearchView

android:id="@+id/sv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<ListView

android:id="@+id/lv"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

</ListView>

</LinearLayout>


/**

* 搜索框的使用

*/

public class MainActivity extends AppCompatActivity {

private SearchView sv;

private ListView lv;

private String [] mStrings = {

"aaa",

"bbbb",

"ccccc",

"dddddd",

"eeeeeee"

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

sv = (SearchView) findViewById(R.id.sv);

lv = (ListView) findViewById(R.id.lv);

//适配器

lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings));

//启用过滤

lv.setTextFilterEnabled(true);

//是否自动缩小为图标

sv.setIconifiedByDefault(false);

//显示搜索按键

sv.setSubmitButtonEnabled(true);

//设置搜索框内显示的文件

sv.setQueryHint("查找");

sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

@Override

public boolean onQueryTextSubmit(String query) {

Toast.makeText(MainActivity.this,"选择是:"+query,Toast.LENGTH_SHORT).show();

return false;

}

/**

* 单击搜索按键时激发的事件

* @param newText

* @return

*/

@Override

public boolean onQueryTextChange(String newText) {

if(TextUtils.isEmpty(newText)){

//清除listview中的内容

lv.clearTextFilter();

}else{

lv.setFilterText(newText);

}

return true;

}

});

}

}


11自动完成AutoCompleteTextView

AutoCompleteTextView 单个完成

MultiAutoCompleteTextView可以有多个值,用,号分隔



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >

<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请选择喜欢的图书"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="1"/>

<MultiAutoCompleteTextView
android:id="@+id/mauto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"/>
</LinearLayout>


/**
* 自动完成文件框

* @author 刘楠
*
* 2016-2-19下午11:55:16
*/
public class MainActivity extends Activity {

private AutoCompleteTextView auto;
private MultiAutoCompleteTextView mauto;
String[] books = { "疯狂JAVA讲义", "疯狂Android讲义", "疯狂Ajax讲义", "疯狂XML讲义",
"疯狂workflow讲义" };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auto = (AutoCompleteTextView) findViewById(R.id.auto);
mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_dropdown_item_1line,
books);

auto.setAdapter(adapter);

mauto.setAdapter(adapter);
//设置分隔符
mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

}

}


12.时钟

AnalogClock与TextClock

format12Hour:设置时钟12小时制字符串

format24Hour:设置时钟24小时制字符串

timeZone:设置时区

dial:设置模拟时钟表盘使用的图片

hand_hour:时针使用的图片

hand_minuties:分针使用的图片



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<!-- 定义模拟时钟 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- 定义数字时钟 -->
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="#f0f"
android:format12Hour="yyyy年MM月dd日 H:mma EEEE"
android:drawableEnd="@drawable/ic_launcher"/>
<!-- 定义模拟时钟,并使用自定义表盘、时针图片 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:dial="@drawable/watch"
android:hand_minute="@drawable/hand"/>
</LinearLayout>


13计时器Chronometer



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<Chronometer
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12pt"
android:textColor="#ffff0000"/>
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动"/>
</LinearLayout>


/**
* 计时器

* @author 刘楠
*
* 2016-2-20上午12:15:09
*/
public class MainActivity extends Activity {
Chronometer ch;
Button start;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取计时器组件
ch = (Chronometer) findViewById(R.id.test);
// 获取“开始”按钮
start = (Button) findViewById(R.id.start);
start.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
// 设置开始计时时间
ch.setBase(SystemClock.elapsedRealtime());
// 启动计时器
ch.start();
start.setEnabled(false);
}
});
// 为Chronometer绑定事件监听器
ch.setOnChronometerTickListener(new OnChronometerTickListener()
{
@Override
public void onChronometerTick(Chronometer ch)
{
// 如果从开始计时到现在超过了20s
if (SystemClock.elapsedRealtime() - ch.getBase() > 20 * 1000)
{
ch.stop();
start.setEnabled(true);
}
}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: