2019年1月4日 星期五

[Android]_ch11.3_Tab導覽列元件1





[Android]_ch11.3_Tab導覽列元件1



加上Tab導覽方式,可以使用ActionBarTab功能,步驟如下:
Step1:實作ActionBar.TabListener介面以處理使用者點選Tab事件
Step2:透過newTab()初始化Tab後呼叫setText()/setIcon()設定Tab文字與圖示,並呼叫setTabListener()設定實作好的TabListener


Step3ActionBar呼叫addTab()新增各個Tab

package com.derek.ch28_tab;



import android.app.ActionBar;

import android.app.ActionBar.TabListener;

import android.app.Activity;

import android.app.ActionBar.Tab;

import android.app.Fragment;

import android.app.FragmentTransaction;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;





public class MainActivity extends Activity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        //setContentView(R.layout.activity_main);

     

        ActionBar actionBar=getActionBar();

        actionBar.setDisplayShowHomeEnabled(false);

        actionBar.setDisplayShowTitleEnabled(false);

        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        Tab Tab1=actionBar.newTab();

        Tab1.setText("郵件");

        Tab1.setIcon(R.drawable.icon1);

        Tab1.setTabListener(new MyTabListener<Fragment>());

        Tab Tab2=actionBar.newTab();

        Tab2.setText("購物");

        Tab2.setIcon(R.drawable.icon2);

        Tab2.setTabListener(new MyTabListener<Fragment>());

        Tab Tab3=actionBar.newTab();

        Tab3.setText("主頁");

        Tab3.setIcon(R.drawable.icon3);

        Tab3.setTabListener(new MyTabListener<Fragment>());

        Tab Tab4=actionBar.newTab();

        Tab4.setText("Q&A");

        Tab4.setIcon(R.drawable.icon4);

        Tab4.setTabListener(new MyTabListener<Fragment>());

        actionBar.addTab(Tab1);

        actionBar.addTab(Tab2);

        actionBar.addTab(Tab3);

        actionBar.addTab(Tab4);

    }

 

    public class MyTabListener<T extends Fragment> implements TabListener{



@Override

public void onTabSelected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub



}



@Override

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub



}



@Override

public void onTabReselected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub



}

   

    }



}



package com.derek.ch28_tab;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Tab1 extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.tab1,container, false);
return view;
}
}


[Android]_ch11.2_Notification通告訊息元件2



[Android]_ch11.2_Notification通告訊息元件2



1.呼叫Activity.getSystemService()取得NotificationManager物件
NotificationManager  ntfMgr
= (
NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
2.呼叫Notification.Builder建構式建立Notification.Builder物件;再呼叫getNotification()即可建立Notification物件API
Level 16
getNotification()列為deprecated,並建議改呼叫build()
Notification notification = new Notification.Builder(this)
3.設定通知訊息標題、圖示與內容
  //
通知訊息在狀態列的文字
  .setTicker(getString(R.string.tickerText))
  //
通知訊息在訊息面板的標題
  .setContentTitle(getString(R.string.contentTitle))
  //
通知訊息在訊息面板的內容文字
  .setContentText(getString(R.string.contentText))
  //
通知訊息的圖示
  .setSmallIcon(android.R.drawable.ic_menu_info_details)



btn3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

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

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

Notification.Builder builder= new Notification.Builder(MainActivity.this);

builder.setTicker("交通大學通知訊息");

builder.setContentTitle("交通大學補班公告");

builder.setContentText("1/19補班補課");

builder.setSmallIcon(R.drawable.icon2);

Resources resources=getResources();

Bitmap bitmap=BitmapFactory.decodeResource(resources, R.drawable.ypu);

builder.setLargeIcon(bitmap);

builder.setContentIntent(pendingIntent);

builder.setWhen(System.currentTimeMillis());

Notification notification=builder.build();

notification.defaults=Notification.DEFAULT_SOUND;

notification.defaults=Notification.DEFAULT_LIGHTS;

notification.defaults=Notification.DEFAULT_VIBRATE;

notification.vibrate=new long[]{100,500,100,500};

nm.notify(id2, notification);

}

});

        btn4.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

nm.cancel(id2);

}

});

[Android]_ch11.1_Notification通告訊息元件1





[Android]_ch11.1_Notification通告訊息元件1



npublic static PendingIntent getActivity(Context context, int requestCode,Intent intent, int
flags
)
ncontext:上下文对象。
nrequstCode:请求码,发件人的私人请求代码(当前未使用)。
nintent:请求意图。用于要指明要启动的类以及数据的传递;
nflags:这是一个关键的标志位:


FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。

FLAG_NO_CREATE:如果当前系统中不存在相同的PendingIntent对象,系统将不会创建该PendingIntent对象而是直接返回null
FLAG_ONE_SHOT:PendingIntent只作用一次。在该PendingIntent对象通过send()方法触发过后,PendingIntent将自动调用cancel()进行销毁,那么如果你再调用send()方法的话,系统将会返回一个SendIntentException
FLAG_UPDATE_CURRENT:如果系统中有一个和你描述的PendingIntent对等的PendingInent,那么系统将使用该PendingIntent对象,但是会使用新的Intent来更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras

package com.derek.ch27_notification;

import android.R.integer;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewDebug.FlagToString;
import android.widget.Button;


public class MainActivity extends Activity {
Button btn1,btn2;
NotificationManager nm;
int id1=1;
    @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);
        nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        
        btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Notification notification=new Notification(R.drawable.icon1, "巨匠電腦課程異動通知", System.currentTimeMillis());
PendingIntent pendingIntent=PendingIntent.getActivity(MainActivity.this, 0, MainActivity.this.getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(MainActivity.this, "巨匠電腦課程異動通知", "Android手機假日班停課一次!", pendingIntent);
notification.defaults=Notification.DEFAULT_SOUND;
notification.defaults=Notification.DEFAULT_LIGHTS;
notification.defaults=Notification.DEFAULT_VIBRATE;
notification.vibrate=new long[]{100,500,100,500};
nm.notify(id1, notification);
}
});
        btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
nm.cancel(id1);
}
});
    }

}

[Android]_ch3.3_ImageView元件介紹





[Android]_ch3.3_ImageView元件介紹

package com.derek.ch6_imageview;



import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ImageView;

import android.widget.Switch;

import android.widget.ToggleButton;





public class MainActivity extends Activity {

ImageView iv;

ToggleButton tb;

Switch sw;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

        tb=(ToggleButton)findViewById(R.id.toggleButton1);

        sw=(Switch)findViewById(R.id.switch1);

       

        tb.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

boolean state=tb.isChecked();

if(state)

iv.setImageResource(R.drawable.c2);

else

iv.setImageResource(R.drawable.c1);

}

});

        sw.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

boolean state=sw.isChecked();

if(state)

iv.setImageResource(R.drawable.c2);

else

iv.setImageResource(R.drawable.c1);

}

});

    }



}


[Android]_ch3.2_WebView元件介紹2



[Android]_ch3.2_WebView元件介紹2



n使用自WebView來處理URL請求,必須改寫WebViewClientshouldOverrideUrlLoading(),並呼叫setWebViewClient設定
n建議對返回鍵的按下事件加以處理


class MyWebViewClient extends WebViewClient{



@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

wv.loadUrl(url);

return super.shouldOverrideUrlLoading(view, url);

}

   

    }



@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(wv.canGoBack() && keyCode==KeyEvent.KEYCODE_BACK){

wv.goBack();

}

return super.onKeyDown(keyCode, event);

}

[Android]_ch3.1_WebView元件介紹1





[Android]_ch3.1_WebView元件介紹1



n瀏覽網頁使用WebView元件,說明如下:
nlayout檔案建立WebView
nJavaScript語法可以在WebView元件上運行
nwebView.getSettings().setJavaScriptEnabled(true);
n設定WebView元件欲連結的網址
nwebView.loadUrl("http://www.google.com");
n瀏覽網頁必須使用到Internet,設定android.permission.INTERNET


package com.derek.ch5_webview;



import android.R.integer;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.EditText;





public class MainActivity extends Activity {

Button btn1;

WebView wv;

EditText et1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        et1=(EditText)findViewById(R.id.editText1);

        wv=(WebView)findViewById(R.id.webView1);

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

        int start="http://".length();

        int stop=et1.getText().toString().length();

        et1.setSelection(start, stop);

        WebSettings ws=wv.getSettings();

        ws.setJavaScriptEnabled(true);

        wv.loadUrl("http://www.591.com.tw");

        btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String url= et1.getText().toString();

wv.loadUrl(url);

}

});

    }

}


2019年1月2日 星期三

[財務管理資訊系統]_107第11組_長榮與華航

[財務資訊管理系統]_107第1組_捷安特與美利達

[Android]_ch2.9_RatingBar元件介紹



[Android]_ch2.9_RatingBar元件介紹

 rb=(RatingBar)findViewById(R.id.ratingBar1);

        rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

@Override

public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {

// float star=ratingBar.getRating();

Toast.makeText(MainActivity.this, rating+" 顆星", Toast.LENGTH_SHORT).show();

}

});

[Android]_ch2.8_SeekBar元件(調色盤)





[Android]_ch2.8_SeekBar元件(調色盤)



package com.derek.ch4_seekbar;



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.LinearLayout;

import android.widget.SeekBar;

import android.widget.SeekBar.OnSeekBarChangeListener;

import android.widget.TextView;

import android.widget.Toast;





public class MainActivity extends Activity {

LinearLayout layout;

TextView tv1;

SeekBar sb1,sb2,sb3;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        sb1=(SeekBar)findViewById(R.id.seekBar1);

        sb2=(SeekBar)findViewById(R.id.seekBar2);

        sb3=(SeekBar)findViewById(R.id.seekBar3);

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

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

       

        OnSeekBarChangeListener OSBCL=new OnSeekBarChangeListener() {



@Override

public void onStopTrackingTouch(SeekBar seekBar) {

Toast.makeText(MainActivity.this, "3.放開滑桿,值="+seekBar.getProgress(), Toast.LENGTH_SHORT).show();

}



@Override

public void onStartTrackingTouch(SeekBar seekBar) {

Toast.makeText(MainActivity.this, "1.按下滑桿,值="+seekBar.getProgress(), Toast.LENGTH_SHORT).show();

}



@Override

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {

int red=sb1.getProgress();

int green=sb2.getProgress();

int blue=sb3.getProgress();

tv1.setText("2.調整滑桿..紅="+red+" 綠="+green+" 藍="+blue);

layout.setBackgroundColor(new Color().rgb(red, green, blue));

}

};

sb1.setOnSeekBarChangeListener(OSBCL);

sb2.setOnSeekBarChangeListener(OSBCL);

sb3.setOnSeekBarChangeListener(OSBCL);



    }

}


[Android]_ch2.7_SeekBar元件介紹





[Android]_ch2.7_SeekBar元件介紹

package com.derek.ch4_seekbar;



import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.LinearLayout;

import android.widget.SeekBar;

import android.widget.SeekBar.OnSeekBarChangeListener;

import android.widget.TextView;

import android.widget.Toast;





public class MainActivity extends Activity {

LinearLayout layout;

TextView tv1;

SeekBar sb1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        sb1=(SeekBar)findViewById(R.id.seekBar1);

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

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

       

        sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

Toast.makeText(MainActivity.this, "3.放開滑桿,值="+seekBar.getProgress(), Toast.LENGTH_SHORT).show();

}



@Override

public void onStartTrackingTouch(SeekBar seekBar) {

Toast.makeText(MainActivity.this, "1.按下滑桿,值="+seekBar.getProgress(), Toast.LENGTH_SHORT).show();

}



@Override

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {

tv1.setText("2.調整滑桿,值="+progress+" formUser="+fromUser);

layout.setBackgroundColor(new Color().rgb(progress, progress, progress));

}

});

    }

}


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