2012年7月30日 星期一

在Intent間傳遞2個不同元件的值

在Intent間傳遞2個不同元件的值,並且設定可以清除EditText


主程式
public class MainActivity extends Activity {
     private EditText name;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        Spinner spinner=(Spinner)findViewById(R.id.spinner);
        //建立一個Adapter物件來放置下拉式選單物件
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,new String[]{"國營","民營","股份有限公司","SOHO"});
       //選擇下拉式選單樣式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
       
        //EditText
        name=(EditText)findViewById(R.id.username);
        //next Activity
        Button next_btn=(Button)findViewById(R.id.next);
        next_btn.setOnClickListener(ret_btn);
        //Button event
        Button button=(Button)findViewById(R.id.clear);
        button.setOnClickListener(bc);
       
       
    } 
    //rec_btn
    private OnClickListener ret_btn=new OnClickListener(){
                    
                @Override
                public void onClick(View v) {
                        // TODO Auto-generated method stub
                        //page透過Intent通知系統框架
                        Intent intent=new Intent();
                        //指定要呼叫的Activity class
                        intent.setClass(MainActivity.this,Report.class);
                        //建立Bundle物件
                        Bundle bundle=new Bundle();
                        //將附加的訊息儲存在Bundle
                        bundle.putString("username",((EditText)findViewById( R.id.username)).getText().toString());
                        bundle.putString("spinner",((Spinner)findViewById(R.id.spinner)).getSelectedItem().toString());
                        //Bundle指定到Intent
                        intent.putExtras(bundle);
                        //呼叫新的Activity
                        startActivity(intent);
                        // 不結束原先的 Activity Class
            // 這樣按返回鍵時, 就可以回到這個 Activity
            //RadioActivity.this.finish();

                }
           
    };
    private OnClickListener bc=new OnClickListener(){

                @Override
                public void onClick(View arg0) {
                        // TODO Auto-generated method stub
               name.setText("");
                }
     };
       
}

下一個Intent
public class Report extends Activity {
        private TextView name;
        /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.report);
       
        //TextView name
         name=(TextView)findViewById(R.id.show);
        
         //取得前一個Activity傳過來的Bundle物件
         Bundle nameb = this.getIntent().getExtras();
         Bundle namec = this.getIntent().getExtras();
       // 取得的Bundle 中的資料設定
         String result = nameb.getString("username");
         String resultA = namec.getString("spinner");
       // 顯示結果    
         name.setText("你的帳號是:"+result+",你的單位是:"+resultA); 
   }
}






2012年1月10日 星期二

撥放音樂

請先將資源置入,可以選擇SD card或以資料夾的方式




XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/localBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="撥放SD卡音樂"
        android:onClick="OnLocalClick" />

    <Button
        android:id="@+id/urlBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="撥放網路音樂"
        android:onClick="OnUrlClick" />

    <Button
        android:id="@+id/resBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="播放資源檔"
        android:onClick="OnResClick" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/incBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+"
            android:onClick="OnIncClick" />

        <Button
            android:id="@+id/decBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="-"
            android:onClick="OnDecClick" />
         <Button
            android:id="@+id/stopBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="STOP"
            android:onClick="OnStopClick" />
         <Button
            android:id="@+id/pauseBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="PAUSE"
            android:onClick="OnPauseClick" />
          <Button
            android:id="@+id/playBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="PLAY"
            android:onClick="OnPlayClick" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="音量" />

        <ProgressBar
            android:id="@+id/volPb"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="251dp"
            android:layout_height="wrap_content"
            android:max="15" />

    </LinearLayout>

</LinearLayout>

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
java
package com.demo.android.Player;

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class PlayerActivity extends Activity {
private ProgressBar volPb;
private MediaPlayer player;
private TextView title;
private AudioManager audio;
private int volume = 0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //取得audio服務
        audio = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        title = (TextView)findViewById(R.id.title);
        volPb = (ProgressBar)findViewById(R.id.volPb);
        
        //取得目前音量
        volume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
        
        //設定音量Bar
        volPb.setProgress(volume);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //釋放MediaPlayer物件
        if (player != null) {
        player.release();
        player = null;
        }
    }
    
    public void OnLocalClick(View v){
    String path = "file:///sdcard/FromU.mp3";//sdcard的音訊檔案
   
    //釋放MediaPlayer物件
        if (player != null) {
        player.release();
        player = null;
        }
   
    player = new MediaPlayer();
    try{
    player.setDataSource(path);
    player.prepare();
    player.start();
    title.setText("播放SD卡音樂...");
    }catch(Exception e){
        //Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG).show();
        e.printStackTrace();
        }
    }
    
    public void OnUrlClick(View v){
    String path = "http://fs.jcache.com/Download.aspx?fpath=ringtone%2f2010%2f12%2f2102420466.mp3";
        
    //釋放MediaPlayer物件
        if (player != null) {
        player.release();
        player = null;
        }
        
    player = new MediaPlayer();
        try{
       
       player.setDataSource(path);
       player.prepare();
       player.start();
       
       title.setText("播放網路音樂");
        }catch(Exception e){
       
        e.printStackTrace();
        }
        
        
    }
    
    public void OnResClick(View v){
        
    //釋放MediaPlayer物件
        if (player != null) {
        player.release();
        player = null;
        }
        
    player = MediaPlayer.create(this, R.raw.system);//system.mp3
        try{
       player.start();
       
       title.setText("播放資源檔音樂");
        }catch(Exception e){
       
        }
    }
    
    public void OnIncClick(View v){
    //調大聲
    audio.adjustVolume(AudioManager.ADJUST_RAISE, 0);
    //取得目前音量
        volume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
        
        //設定音量Bar
        volPb.setProgress(volume);
   
    }
    
    public void OnDecClick(View v){
    //調小聲
    audio.adjustVolume(AudioManager.ADJUST_LOWER, 0);
    //取得目前音量
        volume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
        
        //設定音量Bar
        volPb.setProgress(volume);
    }
    public void OnPauseClick(View v){
    player.pause(); //暫停    
    }
    public void OnStopClick(View v){
    player.stop(); //停止
    }
    public void OnPlayClick(View v){
    player.start(); //重新啟動
    }
}




2012年1月2日 星期一

猜數字遊戲

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="請輸入四個不重複數字"
        android:textAppearance="?android:attr/textAppearanceLarge" />




    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >


        <EditText
            android:id="@+id/inputEt"
            android:layout_width="226dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.93"
            android:inputType="number" />


        <Button
            android:id="@+id/guessBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />
    </LinearLayout>


    <TextView
        android:id="@+id/resultTv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />


</LinearLayout>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
JAVA

package com.demo.android.Guess;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class GuessActivity extends Activity {
    /** Called when the activity is first created. */
private String result="";
private char[] numAnswer = {};
private char[] numInput = {};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        numAnswer = GenNum().toCharArray();
        
        Button guessBtn = (Button)findViewById(R.id.guessBtn);
        
        guessBtn.setOnClickListener(new Button.OnClickListener(){   
  public void onClick(View v){
   
  int countA=0;//A的個數
  int countB=0;//B的個數
   
   
  EditText inputEt = (EditText) findViewById(R.id.inputEt);
  numInput = inputEt.getText().toString().toCharArray();
   
  //比對數字
  for(int i=0; i<4; i++){
  for(int j=0;j<4;j++){
  if(numInput[i] == numAnswer[j]){
  if(i==j)
  countA+=1;//數字相同而且位置相同 +1A
  else
  countB+=1;//數字相同但是位置不同 -1A
  }
  }
  }
     
       
    result="=>"+countA+"A"+countB+"B";
     
    if( countA == 4){
    result += " 答對了!遊戲結束。";
    }
     
  //顯示資料
    TextView resultTv = (TextView)findViewById(R.id.resultTv);
    resultTv.setText(inputEt.getText().toString()+result);
     
    inputEt.setText("");//清除輸入
  }
    });
    }


    
    //亂數產生數字
    public String GenNum(){
    String number = "0123456789";
    String numAnswer = "";


    //從0~9抽號碼
    //每次亂數抽一個號碼
    for(int i=0; i<4; i++){
    //因為每次會抽一個號碼,所以數字個數會少一個
    //i=1 產生亂數第0~9個號碼 0123456789 假設抽到第3個數字3
    //i=2 產生亂數第0~8個號碼 012456789 假設抽到第6個數字7
    //i=3 產生亂數第0~7個號碼 01245689 假設抽到第1個數字1
    //...
    int randNum =(int)(Math.random()*(10-i));
    //抽到的號碼
    String randStr = number.substring(randNum, randNum+1);
    //刪掉抽到的號碼
    number = number.replace(randStr, "");
    //存抽到的號碼
    numAnswer += randStr;
    }
   
    //測試用,顯示答案
    TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(tv.getText().toString()+"( "+ numAnswer + " )");
     
    return numAnswer;
    }
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※