久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android實(shí)現(xiàn)強(qiáng)制下線(xiàn)功能的示例代碼

瀏覽:4日期:2022-09-23 13:07:20

一、回顧

上次連載寫(xiě)了兩個(gè)類(lèi),一個(gè)類(lèi)ActivityCollector.java用于管理所有的活動(dòng);一個(gè)類(lèi)是BaseActivity.java作為所有活動(dòng)的父類(lèi); 還有一個(gè)放在layout目錄中的登錄界面login.xml

二、登錄頁(yè)面的活動(dòng)

接下來(lái)寫(xiě)一個(gè)登錄頁(yè)面的活動(dòng),繼承自BaseActivity.java

package com.example.broadcastbestpractice;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends BaseActivity{ private EditText accountEdit; private EditText passwordEdit; private Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); accountEdit = (EditText)findViewById(R.id.account); passwordEdit = (EditText)findViewById(R.id.password); login = (Button) findViewById(R.id.login); login.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { String account =accountEdit.getText().toString(); String password = passwordEdit.getText().toString(); //如果賬號(hào)是admin,密碼是12345,就認(rèn)為登錄成功 if(account.contentEquals('admin') && password.equals('12345')) { Intent intent = new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); finish(); }else { Toast.makeText(LoginActivity.this,'account or password is invalid',Toast.LENGTH_SHORT).show(); } } }); }} 使用findViewById方法分別獲取輸入框以及登錄按鈕的實(shí)例 然后設(shè)置點(diǎn)擊事件:先判斷賬號(hào)和密碼對(duì)不對(duì),對(duì)了就是用intent實(shí)例進(jìn)入到主活動(dòng)中;錯(cuò)了就重新進(jìn)入登錄頁(yè)面,并且打印出一條提示語(yǔ)。 接著改造一下主界面,當(dāng)然加上強(qiáng)制下線(xiàn)功能就行,不要其他花里胡哨的。

<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' > <Button android: android:layout_width='match_parent' android:layout_height='wrap_content' android:text='Send force offline broadcast' /></LinearLayout> 非常簡(jiǎn)單,就是加了一個(gè)按鈕 接下來(lái)修改主活動(dòng)的邏輯

package com.example.broadcastbestpractice;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button forceOffline = (Button) findViewById(R.id.force_offline); forceOffline.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent('com.example.broadcastbestpractice.FORCE_OFFLINE'); sendBroadcast(intent); } }); }} 在點(diǎn)擊事件里面,我們發(fā)送了com.example.broadcastbestpractice.FORCE_OFFLINE廣播,用于通知程序強(qiáng)制用戶(hù)下線(xiàn)。 這說(shuō)明強(qiáng)制用戶(hù)下線(xiàn)的功能,應(yīng)該寫(xiě)在接收器中,不寫(xiě)在具體某個(gè)活動(dòng)中,這樣發(fā)出“下線(xiàn)”廣播的時(shí)候,就能完成下線(xiàn)操作了。 接下來(lái)創(chuàng)建一個(gè)廣播接收器

package com.example.broadcastbestpractice;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.BroadcastReceiver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.view.WindowManager;import android.content.DialogInterface.OnClickListener;;public class ForceOfflineReceiver extends BroadcastReceiver{ @Override public void onReceive(final Context context,Intent intent) { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context); dialogBuilder.setTitle('Warning'); dialogBuilder.setMessage('You are forced to be offline,Please try to login again.'); dialogBuilder.setCancelable(false); //下面這句改了 dialogBuilder.setPositiveButton('OK', new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { ActivityCollector.finishAll();//銷(xiāo)毀所有的活動(dòng) Intent intent = new Intent(context,LoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);//重新啟動(dòng)LoginActivity } }); AlertDialog alertDialog = dialogBuilder.create(); //需要設(shè)置AlertDialog的類(lèi)型,保證廣播接收器中可以正常彈出 alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); alertDialog.show(); }}

Android實(shí)現(xiàn)強(qiáng)制下線(xiàn)功能的示例代碼

25.1

三、源碼:

BroadcastBestPracticehttps://github.com/ruigege66/Android/tree/master/BroadcastBestPractice

到此這篇關(guān)于Android實(shí)現(xiàn)強(qiáng)制下線(xiàn)功能的示例代碼的文章就介紹到這了,更多相關(guān)android 強(qiáng)制下線(xiàn)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 日韩中文字幕三区 | 欧美日韩激情 | 亚洲97 | 欧美一区二区在线看 | 国产在线视频一区 | 中文字幕1区 | 日韩免费 | 久久情趣视频 | 精品久久久久久久人人人人传媒 | 亚洲综合大片69999 | 欧美久久久久久久 | 91精品国产综合久久久久久丝袜 | 日韩免费在线视频 | 在线视频日韩 | 国产成人午夜精品影院游乐网 | 亚洲 欧美 激情 另类 校园 | 精品96久久久久久中文字幕无 | 久久免费精品 | 99国产精品久久久久久久成人热 | 91精品国产欧美一区二区成人 | 九九免费视频 | 国产精品免费一区二区三区四区 | 免费在线观看成年人视频 | 国产日韩精品一区二区 | 国产精品久久久久久久久久东京 | 黄色一级电影 | 99精品视频一区二区三区 | 国产欧美日韩综合精品一区二区 | 欧美视频在线观看一区 | 久久av综合 | 欧美精品www| 中文字幕在线播放第一页 | 国产一区二区三区久久久久久久久 | 国产专区一区二区三区 | 精品无人乱码一区二区三区 | 97人人做人人人难人人做 | 视频一区二区中文字幕日韩 | 国产高清在线 | 午夜婷婷激情 | 蜜桃免费一区二区三区 | 国产精品乱码人人做人人爱 |