【第一部分】歷史文章:
Android學習筆記(一)——創建第一個Android項目
Android學習筆記(二)android studio基本控件及佈局(實現圖片查看器)
Android學習筆記(三)android studio中CheckBox自定義樣式(更換複選框左側的勾選圖像)
Android學習筆記(四)Android 中Activity頁面的跳轉及傳值
Android學習筆記(五)——Toast提示、Dialog對話框、Menu菜單
Android學習筆記(六)——自定義ListView佈局+AsyncTask異步任務
Android學習筆記(七)——數據存儲(共享參數SharedPreferences)
Android學習筆記(八)——數據存儲(SD卡文件操作)
Android學習筆記(九)——網絡技術
Android學習筆記(十)——實現新聞列表案例
Android學習筆記(十一)——一些高級控件的使用
Android學習筆記(十二)——數據存儲(SQLite數據庫)
Android學習筆記(十三)——數據存儲(LitePal操作數據庫)
Android學習筆記(十四)——內容提供器
Android學習筆記(十五)——側滑容器(ViewPager)
【第二部分】主要問題解決:
Android Studio(存)讀取不了SD卡上的文件——【已解決】
【第三部分】期末項目:
Android期末項目(一)—— 解析二維數組對象
package cn.edu.hznu.com;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class FirstActivity extends AppCompatActivity {
private TextView button;
private int dt = 5;
private Runnable runnable;
private Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setFlags(flag,flag);
setContentView(R.layout.activity_first);
init();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final SharedPreferences pref=getSharedPreferences("username",FirstActivity.MODE_PRIVATE);
final SharedPreferences.Editor tv_usernameeditor=pref.edit();
final String username=pref.getString("tv_username","未登錄");//起初設置爲未登錄狀態
if(username.equals("未登錄")||username.length()==0){
timer.cancel();
startMainActivity();
return;
}
else {
startMainActivity();
}
}
});
countDown();
}
private void startMainActivity() {
Intent intent=new Intent(FirstActivity.this,MainActivity.class);
startActivity(intent);
}
protected void onDestroy() {
super.onDestroy();
//移除消息
handler.removeCallbacksAndMessages(null);
}
//初始化函數
private void init() {
try{
button=(TextView) findViewById(R.id.button);
}catch (Exception e){
e.printStackTrace();
}
}
@SuppressLint("HandlerLeak")
private Handler handler = new Handler(){
@SuppressLint("SetTextI18n")
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 1:
final SharedPreferences pref=getSharedPreferences("username",FirstActivity.MODE_PRIVATE);
final SharedPreferences.Editor tv_usernameeditor=pref.edit();
final String username=pref.getString("tv_username","未登錄");//起初設置爲未登錄狀態
if(username.equals("未登錄")||username.length()==0){ //未登錄
button.setText("跳過封面 " + dt);
dt--;
if(dt<0){
//關閉定時器
timer.cancel();
startMainActivity();
}
return;
}
else { //登錄
timer.cancel();
startMainActivity();
}
}
}
};
private void countDown() {
timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(1);
}
};
timer.schedule(timerTask, 1, 1000);
}
}