スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EditText で「This text field does not specify an inputType or a hint」

EdtiTextで「This text field does not specify an inputType or a hint」
の警告が出る場合があるが、「android:inputType」の指定が行われていないことが原因。

例)
android:inputType="text"

【参考】以下、inputTypeの種類
http://wikiwiki.jp/android/?UI%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8%2FTextView#inputType






スポンサーサイト

地域ごとに表示内容を変える

Androidでは、地域ごとに表示する文字を変えることができる。
各端末で設定されている言語によって、使用する「strings.xml」を
自動で区別してくれる。

下記のようにフォルダを作成すると、指定した言語コードに対応した「strings.xml」
が使用される。
「res/values-(言語コード)」


例として「日本」「US」「その他」で表示の切り分けを行うサンプルを作成してみる。


「strings.xml」を下記のように3つのパッケージに分けて配置する。
「res/values-en-rUS」・・・US表示
「res/values-jp」  ・・・日本表示
「res/values」    ・・・上記以外の表示
TestLanguage005.jpg


≪res/values-en-rUS/strings.xml≫
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Main!</string>
<string name="app_name">TestLanguage</string>
<string name="country">US</string>
</resources>


≪res/values-ja/strings.xml≫
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">こんにちは。</string>
<string name="app_name">言語のテスト</string>
<string name="country">日本</string>
</resources>


≪res/values/strings.xml≫
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Main!</string>
<string name="app_name">TestLanguage</string>
<string name="country">other</string>
</resources>



【言語:US の場合】
TestLanguage002.jpg

【言語:日本語 の場合】
TestLanguage003.jpg

【言語:上記以外 の場合】
TestLanguage004.jpg



タブ画面を作成する

Androidでタブを表示するには、「TabActivity」を使用するとよい。

≪サンプル画面≫
TabActivity.jpg

【main.xml】
<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<!--tab1のレイアウト定義-->
<LinearLayout
android:id="@+id/view1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="tab1" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:autoText="true"
android:capitalize="sentences" />
</LinearLayout>

<!--tab2のレイアウト定義-->
<TextView android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab2" />

<!--tab3のレイアウト定義-->
<TextView android:id="@+id/view3"
android:background="@drawable/gray"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:text="tab3" />
</FrameLayout>


【Main.java】
package com.test.tabactivity;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;

public class Main extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TabHost tabHost = getTabHost();

LayoutInflater.from(this).inflate(R.layout.main,
tabHost.getTabContentView(), true);

tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("tab1") // タブ表示名
.setContent(R.id.view1)); // 表示するビューを指定

tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("tab2")
.setContent(R.id.view2));

tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("tab3")
.setContent(R.id.view3));

tabHost.setCurrentTab(0);
}
}

共通のスタイルを使用する

Androidで、共通のスタイルを使用したい場合は、xmlファイルにスタイルを定義し、
そのスタイルを各部品で定義するとよい。

<スタイルの xmlファイル>・・・「res/values」配下に置く。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="txt_style01">
<item name="android:textSize">20sp
<item name="android:textColor">#EE0000
</style>
<style name="txt_style02">
<item name="android:textSize">16sp
<item name="android:textColor">#CCCCCC
<item name="android:paddingLeft">20dp
</style>

<style name="txt_style03" parent="txt_style02">
<item name="android:paddingLeft">40dp
<item name="android:background">#666699
</style>
</resources>


上記スタイルの「txt_style03」のように、「txt_style02」を継承することも可能。


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

<TextView style="@style/txt_style01"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="見出し1" />

<TextView style="@style/txt_style02"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="項目1" />
<TextView style="@style/txt_style02"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="項目2" />
<TextView style="@style/txt_style02"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="項目3" />

<TextView style="@style/txt_style01"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="見出し2" />

<TextView style="@style/txt_style02"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="項目1" />
<TextView style="@style/txt_style02"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="項目2" />
<TextView style="@style/txt_style03"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="詳細内容" />

</LinearLayout>



【画面イメージ】
スタイル画面イメージ

Android 通知アイコンの表示

Androidで、ステータスバーにアイコンを表示するサンプルを作成したいと思います。

≪イメージ≫
icon001.jpg

「アイコン表示」ボタンを押下すると、ステータスバーにアイコンおよびテキストが表示されます。
また、「アイコン消去」ボタンを押下すると、ステータスバーに表示されているアイコンが削除されます。


≪サンプルPG≫
package com.test.notication;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 通知アイコン表示
Button btn1 = (Button) findViewById(R.id.Button01);

btn1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
NotificationManager mManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

Notification notification = new Notification();
// アイコンの設定
notification.icon = R.drawable.icon;
// アイコンの右に出力する、テキストの設定
notification.tickerText = "テキスト表示!";

Intent i = new Intent(getApplicationContext(), Main.this.getClass());
PendingIntent pend = PendingIntent.getActivity(Main.this, 0, i, 0);

// ステータスバーを広げた際の表示内容を設定
notification.setLatestEventInfo(getApplicationContext(), "title", "text", pend);

// ステータスバーにNotificationを表示する。
mManager.notify(1, notification);
}
});

// 通知アイコン消去
Button btn2 = (Button) findViewById(R.id.Button02);

btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 通知アイコンを削除する。
NotificationManager mManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
mManager.cancel(1);
}
});

}
}

検索フォーム


カテゴリ
全記事表示リンク

全ての記事を表示する

広告
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。