2015年12月3日 星期四

Android常用監聽

Button
View.OnClickListener
物件點一下

View.OnLongClickListener
物件長按

Radio
RadioGroup.OnCheckedChangeListener
單選群組中,選項變更

EditText
TextWatcher
輸入文字時

CheckBox
CompoundButton.OnCheckedChangeListener
複選選項變更


Spinner
AdapterView.OnitemSelectedListener
一選取項目就觸發






Android要使用Listener來監聽物件

//首先需在MainActivity implements監聽動作
public class MainActivity extends AppCompatActivity
implements RadioGroup.OnCheckedChangeListener,TextWatcher
{
RadioGroup unit;
EditText value;
TextView txv;

@Overrideprotected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
//設定要監聽的物件
    unit=(RadioGroup)findViewById(R.id.radioGroup);
    unit.setOnCheckedChangeListener(this);
    value=(EditText)findViewById(R.id.editText);
    value.addTextChangedListener(this);
    txv=(TextView)findViewById(R.id.textView2);

}

//以下是監聽的事件
@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {
    calc();
}


@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Overridepublic void afterTextChanged(Editable s) {
    calc();
}

protected void calc(){
   
}

}

使用String.format()格式化字串

String.format()可以用來格式化字串

例如
浮點數取小數點後一位
String.format("%.1f",3.14159);會取得3.1

%將3.14159帶入
.1取得小數點後一位
f要轉換的值是浮點數

判斷EditText有無輸入值

要判斷EditText有無輸入值,可用以下方式判斷
if("".equals(editText.getText().toString().trim()))
{
}

或可用
editText.getText().length()== 0

editText.getText().toString() == null 
editText.getText().toString().equals("")