2020年11月20日 星期五

[Android]_ch7.1_shared preferences:存取偏好檔案的內容





[Android]_ch7.1_shared preferences:存取偏好檔案的內容
存取偏好設定檔案的說明如下:
呼叫Context的getSharedPreferences()取得SharedPreferences
getSharedPreferences settings=getSharedPreferences(String name, int mode)
呼叫SharedPreferences的edit()以取得SharedPreferences.Editor物件,方可編輯內容
settings.edit()
.putString(“key1", stringValue)
.putBoolean(“key2", booleanValue)
.putInt(“key3", intValue)
.commit();
呼叫SharedPreferences對應的getter方法取得對應資料
String fileName = settings.getString("key1", default_fileName);
呼叫SharedPreferences.Editor的remove()將指定資料移除
settings.edit()
.remove(key1)
.commit();
檔案儲存於 data/data/專案套件名稱/shared_prefs/prefSet.xml




package com.derek.ch21_sharepreference;

import android.R.integer;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;


public class MainActivity extends Activity {
Button btn1,btn2,btn3;
RadioButton rb1,rb2;
EditText et1,et2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
rb1=(RadioButton)findViewById(R.id.radioButton1);
rb2=(RadioButton)findViewById(R.id.radioButton2);
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn3=(Button)findViewById(R.id.button3);

btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String fileName=et1.getText().toString();
boolean isAuto=false;
if(rb1.isChecked())
isAuto=true;
else
isAuto=false;
int sec=Integer.parseInt(et2.getText().toString());
SharedPreferences sp=getSharedPreferences("Gjun2019", MODE_PRIVATE);
Editor editor=sp.edit();
editor.putString("1", fileName);
editor.putBoolean("2", isAuto);
editor.putInt("3", sec);
editor.commit();
Toast.makeText(MainActivity.this, "1.儲存成功...", Toast.LENGTH_SHORT).show();
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sp=getSharedPreferences("Gjun2019", MODE_PRIVATE);
String fileName= sp.getString("1", "找不到檔案");
et1.setText(fileName);
boolean isAuto=sp.getBoolean("2", true);
if(isAuto)
rb1.setChecked(true);
else
rb2.setChecked(true);
int sec=sp.getInt("3", 120);
et2.setText(Integer.toString(sec));
Toast.makeText(MainActivity.this, "2.載入成功...", Toast.LENGTH_SHORT).show();
}
});
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
et1.setText("Gjun.txt");
rb2.setChecked(true);
et2.setText(Integer.toString(100));
Toast.makeText(MainActivity.this, "3.回復預設...", Toast.LENGTH_SHORT).show();
}
});
}

}



2020年10月24日 星期六

[Android]_ch6.1_使用意圖物件啟用其他活動



[Android]_ch6.1_使用意圖物件啟用其他活動

package com.derek.ch18_intent;



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.view.View.OnClickListener;

import android.widget.Button;





public class Act01 extends Activity {

Button btn1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.act01);

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

        btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent=new Intent();

intent.setClass(Act01.this, Act02.class);

startActivity(intent);

}

});

    }

}





package com.derek.ch18_intent;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;



public class Act02 extends Activity{

Button btn2_1;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.act02);

btn2_1=(Button)findViewById(R.id.button2_1);

btn2_1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent=new Intent(Act02.this,Act01.class);

startActivity(intent);

}

});

}



}


[Android]ch5.18_ListActivity項目元件

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/



2020年10月3日 星期六

[Android]_ch5.8_TimePickerDialog時間挑選元件

[Android]_ch5.8_TimePickerDialog時間挑選元件




[Android]_ch5.8_TimePickerDialog時間挑選元件

package com.example.ch1_datepickerdialog;



import java.util.Calendar;



import android.R.integer;

import android.app.Activity;

import android.app.DatePickerDialog;

import android.app.DatePickerDialog.OnDateSetListener;

import android.app.Dialog;

import android.app.TimePickerDialog;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;

import android.widget.TimePicker;





public class MainActivity extends Activity {

Button btn1,btn2;

TextView tv1;

int Y,M,D,H,Min;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

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

        tv1=(TextView)findViewById(R.id.textView1);

        btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

showDialog(1);

}

});

        btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

showDialog(2);

}

});

        Calendar calendar=Calendar.getInstance();

        Y=calendar.get(Calendar.YEAR);

        M=calendar.get(Calendar.MONTH);

        D=calendar.get(Calendar.DAY_OF_MONTH);

        H=calendar.get(Calendar.HOUR_OF_DAY);

        Min=calendar.get(Calendar.MINUTE);

        tv1.setText("當前日期: "+Y+"-"+(M+1)+"-"+D+"  "+H+":"+Min);

    }

@Override

@Deprecated

protected Dialog onCreateDialog(int id, Bundle args) {

switch (id) {

case 1:

return new DatePickerDialog(MainActivity.this, new OnDateSetListener() {

@Override

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

tv1.setText("挑選日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth);

}

}, Y, M, D);

case 2:

return new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {



@Override

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

tv1.setText("挑選時間: "+hourOfDay+" : "+minute);

}

}, H, Min, true);



}

return super.onCreateDialog(id, args);

}



}


[Android]_ch5.7_DatePickerDialog日期挑選元件

[Android]_ch5.7_DatePickerDialog日期挑選元件


[Android]_ch5.7_DatePickerDialog日期挑選元件

package com.example.ch1_datepickerdialog;



import java.util.Calendar;



import android.R.integer;

import android.app.Activity;

import android.app.DatePickerDialog;

import android.app.DatePickerDialog.OnDateSetListener;

import android.app.Dialog;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;





public class MainActivity extends Activity {

Button btn1;

TextView tv1;

int Y,M,D;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

        tv1=(TextView)findViewById(R.id.textView1);

        btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

showDialog(1);

}

});

        Calendar calendar=Calendar.getInstance();

        Y=calendar.get(Calendar.YEAR);

        M=calendar.get(Calendar.MONTH);

        D=calendar.get(Calendar.DAY_OF_MONTH);

        tv1.setText("當前日期: "+Y+"-"+(M+1)+"-"+D);

    }

@Override

@Deprecated

protected Dialog onCreateDialog(int id, Bundle args) {

switch (id) {

case 1:

return new DatePickerDialog(MainActivity.this, new OnDateSetListener() {

@Override

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

tv1.setText("挑選日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth);

}

}, Y, M, D);



}

return super.onCreateDialog(id, args);

}



}


[Android]ch5.9_ProgressDialog進度方塊

[Android]ch5.9_ProgressDialog進度方塊
歡迎訂閱頻道:杜仲教學YouTube
https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/




2020年9月18日 星期五

[Android]_ch4.2_ContextMenu元件介紹

[Android]_ch4.2_ContextMenu元件介紹




[Android]_ch4.2_ContextMenu元件介紹

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

getMenuInflater().inflate(R.menu.context_menu, menu);

super.onCreateContextMenu(menu, v, menuInfo);

}

@Override

public boolean onContextItemSelected(MenuItem item) {

StringBuilder sb=new StringBuilder("選擇:");

switch(item.getItemId()){

case R.id.item10:

sb.append(getString(R.string.s10));

break;

case R.id.item11:

sb.append(getString(R.string.s11));

break;

case R.id.item12:

sb.append(getString(R.string.s12));

break;

case R.id.item13:

sb.append(getString(R.string.s13));

break;

case R.id.item14:

sb.append(getString(R.string.s14));

break;

}

Toast.makeText(MainActivity.this, sb, Toast.LENGTH_SHORT).show();

return super.onContextItemSelected(item);

}

[Android]_ch3.7_ScrollView元件介紹1

[Android]_ch3.7_ScrollView元件介紹1


[Android]_ch3.7_ScrollView元件介紹1

package com.derek.ch9_scrollview;



import android.R.integer;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.LinearLayout;





public class MainActivity extends Activity {

LinearLayout layout;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        layout=(LinearLayout)findViewById(R.id.LinearLayout2);

        for(int i=1;i<=10;i++){

        LinearLayout.LayoutParams btnParams=new LinearLayout.LayoutParams(200, 100);

        LinearLayout.LayoutParams etParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        LinearLayout.LayoutParams cbParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        Button btn=new Button(MainActivity.this);

        btn.setText("按鈕"+i);

        btn.setTextColor(Color.BLUE);

        btn.setTextSize(20);

        EditText et=new EditText(MainActivity.this);

        et.setHint("輸入方塊"+i);

        CheckBox cb=new CheckBox(MainActivity.this);

        cb.setText("選項"+i);

        layout.addView(btn, btnParams);

        layout.addView(et, etParams);

        layout.addView(cb, cbParams);

        }

    }

}


2020年8月15日 星期六

2020年5月23日 星期六

[AndroidStudio]ch5.18_ListView清單元件3

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/

[AndroidStudio]ch5.17_ListView清單元件2

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/



[AndroidStudio]ch4.5_AnimationDrawable動畫元件

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/

[AndroidStudio]ch4.4_Touch觸控元件

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/

[AndroidStudio]ch4.3_Gesture手勢比對元件

歡迎訂閱頻道:杜仲教學YouTube

https://www.youtube.com/channel/UCElwt6s8Ea_V-gnu9sZZT5g?sub_confirmation=1

杜仲教學部落格:
https://derekcctu.blogspot.com/





Ether.fi Cash Card 一張所有人必備的加密貨幣信用卡   [Ether.fi Cash Card] : https://www.ether.fi/app/cash/sign-up?ref_code=d27f8523 ------國際交易所------ [Bitg...