ともちゃんのAndroid開発日記

組込みC言語プログラマだったともちゃんが、四苦八苦しながら、AndroidのJAVA言語を習得して行きます。ともちゃんの備忘録も兼ねています。

setTextの文字が途中で切れてしまうとき

textView.setText()で設定した文字が途中で切れてしまうことがありました。

そんな時、

textView.setInputType(InputType.TYPE_CLASS_TEXT); 

 というように、textViewですが、InputTypeをTEXTにしてやったら解決することがあります。

理由は不明ですが・・・。

 

BACKボタンのイベントを取得する

BACKボタンのイベントを取得するには、Activity#onKeyDownを使用します。

 

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
moveTaskToBack(true);
return super.onKeyDown(keyCode, event);
}else{
return super.onKeyDown(keyCode, event);
}
}

 

Androidでアプリを終了させる

Activity#moveTaskToBack (boolean nonRoot)
アプリケーション全体を終了する際の推奨される終了方法です。
アプリケーションを中断状態にします。

moveTaskToBack(true);

 

ナビゲーションバーに戻るボタンを付ける

ActionBarに戻るボタンを設置する。

 

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

戻るボタンを押したときのイベントはActivity#onOptionsItemSelected()で行う。

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

 

UCalendarView

カレンダー機能を作ってみました。

サンプルソースコードです。

http://uchida001tmhr.web.fc2.com

良かったら使ってみてください。

 
f:id:uchida001tmhr:20161206231257j:image

Viewの下位のViewのデータを参照する

Viewの下位のViewのデータを参照する方法です。

ViewGroup viewGroup = (ViewGroup) view;
int viewCount = viewGroup.getChildCount();
if (viewCount > 0) {
TextView childView=(TextView) viewGroup.getChildAt(0);
String strDate = childView.getText().toString();
}

 

viewをViewGroupとしてタイプキャストし、1つ目の子供のViewを

  viewGroup.getChildAt(0)

で参照しています。

 

EditTextの下線の色を変える

EditTextの下線の色を変える。

 

[1] Styles.xml

<resources>
<style name="EditTextColorControl">
<item name="colorControlNormal">@color/colorUnderLineNormal</item>
<item name="colorControlActivated">@color/colorUnderLineActivated</item>
</style>
</resources>

 

colorControlNormal:通常時の色

colorControlActivated:フォーカスが当たった時の色

 

[2] colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorUnderLineNormal">#C0C0C0</color>
<color name="colorUnderLineActivated">#FF4081</color>
</resources>

 

 

[3] レイアウトのxml

<EditText
android:layout_width="match_parent"
android:layout_height="100dp"
android:inputType="textMultiLine"
android:ems="10"
android:id="@+id/editTextMailText"
android:textAppearance="?android:attr/textAppearanceSmall"
android:gravity="top|start"
android:theme="@style/EditTextColorControl"/>

 

 android:themeで[1]で設定したスタイルを使用しています。