Android 基礎控件的學習
七種常用控件和一個容器。
1、TextView
2、Button
3、EditText
4、RadioButton
5、RatingBar
6、CheckBox
7、ToggleButton
8、RadioGroup
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/checkBox"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tvHello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button1"
style="@android:style/Animation.Activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvHello"
android:layout_below="@+id/tvHello"
android:layout_marginTop="18dp"
android:background="@drawable/fire"
android:text="btn" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="16dp"
android:ems="10" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_centerVertical="true" >
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="RadioButton1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioButton1"
android:layout_below="@+id/radioButton1"
android:text="RadioButton2" />
</RadioGroup>
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup1"
android:layout_below="@+id/radioGroup1"
android:layout_marginTop="16dp"
android:stepSize="1.0"
android:numStars="4"/>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/radioGroup1"
android:text="CheckBox1" />
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignRight="@+id/checkBox1"
android:layout_marginRight="26dp"
android:text="ToggleButton" />
</RelativeLayout>
package com.example.studycontrols;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView mTextView;
private Button mButton;
private EditText mEditText;
private RadioButton mRadioButton1;
private RadioButton mRadioButton2;
private RadioGroup mRadioGroup;
private RatingBar mRatingBar;
private CheckBox mCheckBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.tvHello);
mButton = (Button) findViewById(R.id.button1);
mEditText = (EditText) findViewById(R.id.editText1);
mRadioButton1 = (RadioButton) findViewById(R.id.radioButton1);
mRadioButton2 = (RadioButton) findViewById(R.id.radioButton2);
mRadioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
mRatingBar = (RatingBar) findViewById(R.id.ratingBar1);
mCheckBox = (CheckBox) findViewById(R.id.checkBox1);
mCheckBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mCheckBox.isChecked()) {
Toast.makeText(getApplicationContext(), "勾選",
Toast.LENGTH_SHORT).show();
}
}
});
mRatingBar
.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar,
float rating, boolean fromUser) {
Toast.makeText(getApplicationContext(),
Float.toString(rating), Toast.LENGTH_SHORT)
.show();
}
});
mRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radioButton1:
mTextView.setText(mRadioButton1.getText());
break;
case R.id.radioButton2:
mTextView.setText(mRadioButton2.getText());
break;
default:
break;
}
Toast.makeText(getApplicationContext(), "RadioButton變換",
Toast.LENGTH_SHORT).show();
}
});
mEditText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
mTextView.setText(mEditText.getText());
return true;
}
return false;
}
});
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mTextView.setText(mEditText.getText());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
一、在activity_main.xml中學習點如下:
1、ID的添加
android:id="@+id/radioGroup1"
這裏@後邊有個+號
2、Button的背景設置
android:background="@drawable/fire"
3、RatingBar的屬性設置
如最大星星數
android:numStars="4"
如變化度
android:stepSize="1.0"
二、main_activity.java中學習點如下
1、獲取控件ID通常寫於Activity的OnCreate中
2、添加事件時通常需要添加庫文件,可以使用Ctrl+Shift+o
3、public static Toast makeText (Context context,CharSequence text, int duration),類似MessageBox,不同之處是顯示一段時間後會淡出。
4、使用RadioButton時需要加上容器RadioGroup是之互斥,並且RadioButton的Checked屬性發生改變時,可以使用RadioGroup的setOnCheckedChangeListener來監聽,@Override
public void onCheckedChanged(RadioGroup group, int checkedId)根據重寫onCheckedChanged的第二參數來確定被選中的RadioButton
5、EditText可設置鍵盤監聽,如按下按鍵的鍵值可以根據
@Override
public boolean onKey(View arg0, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN)//獲取時間戳與按鍵時間戳相等
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {//並且鍵值爲確定
mTextView.setText(mEditText.getText());
return true;//同return ;
}