1

EditText コントロールの入力タイプを android:inputType="textCapCharacters" に設定しているレイアウトがあります。このコントロールでは問題なく動作しますが、他のアプリケーションに大文字の属性を運ぶことさえあります。

これは、2.1 の Hero と 2.3 の Wildfire に当てはまるようです。

どうすればそれを外すことができるか、またはキーボードをデフォルトモードに戻すことができるかについて何か提案はありますか?

ありがとうございました

スタックされた大文字の動作を示すコード スニペットを次に示します。この問題を経験したことがあるのが私だけだとは想像できません。

Address Line 1 をクリックすると、大文字の単語が正常に機能します。Postcode にフォーカスすると、キーボードは正しく大文字に切り替わりますが、別のアプリに移動しても、他のどのコントロールにフォーカスしても (例: Address Line 1 に戻るなど)、大文字のままになります。

コードはエミュレーターで期待どおりに機能しているように見え、大文字でロックされるのは物理デバイス上のみであることに注意してください。

少なくともヒーローでは、問題はストックキーボードにのみ存在することがわかりました. Swiftkey キーボードを使用すると、すべてがうまくいくようです。

この質問を他の 2 つのフォーラムに投稿しましたが、応答はありませんでしたが、このタイプのクエリには Stackoverflow が最適な推奨事項のようですが、8 日経ってもここで何を試すことができるかについての提案はありませんでした。より多くの情報、別のタグ、または別の場所への投稿が私にとってより良い選択肢である場合は、それらの提案も喜んで聞きます.

エラーを示す完全なコードを以下に示します。

何か提案はありますか?

import android.app.Activity;
import android.os.Bundle;

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);
    }
}

<?xml version="1.0" encoding="utf-8"?>

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



    <TableLayout android:layout_width="fill_parent" android:id="@+id/tableLayout1"
        android:layout_height="fill_parent" android:layout_margin="5dp"
        android:stretchColumns="1">

        <TableRow>
            <EditText android:textSize="17sp" android:layout_height="39dp"
                android:layout_width="fill_parent" android:id="@+id/address"
                android:hint="Address Line 1" android:layout_span="3"
                android:inputType="textCapWords"></EditText>
        </TableRow>

        <TableRow>
            <EditText android:inputType="textCapCharacters"
                android:textSize="17sp" android:id="@+id/postcode"
                android:layout_height="39dp" android:hint="Postcode"
                android:layout_weight="1" android:layout_width="0dip"></EditText>
            <CheckBox android:text="Check Me"
                android:layout_height="39dp" android:id="@+id/checkme"
                android:textSize="12sp" android:layout_weight="1"
                android:layout_span="2" android:layout_width="0dip"
                android:layout_gravity="center"></CheckBox>
            <TextView android:layout_weight="1" android:layout_width="0dip"></TextView>
        </TableRow>
    </TableLayout>
</LinearLayout>
4

1 に答える 1

0

大文字のキーボードを表示したい場合は、 を使用する代わりに を使用android:inputType="textCapCharacters"できますandroid:textAllCaps="true"。次に、大文字形式に固執しません。次に、入力が大文字であることを確認するにはtoUpperCase()、EditText から取得した文字列に対してメソッドを呼び出すだけです。これについてのあなたの考えを教えてください。より明確にするために、このリンクを確認してください。

于 2016-02-25T08:41:25.007 に答える