2

私の問題は、edittext フィールドに黒いカーソルがある警告ダイアログがあることです。この色を白に変更したいです。次の方法で、編集テキストの色を簡単に白に設定できます。

    edittext.setTextColor(Color.WHITE);

問題は、カーソルの色がまだ黒であることです。だから私はいくつかの調査を行い、次のコードを追加してxmlファイルのカーソルの色を変更することに関するいくつかの記事を見つけました:

   android:textCursorDrawable="@drawable/white_cursor"

white_cursor.xml は次のようになります。

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="1dp"/>
    <solid android:color="#FFFFFF"  />
    </shape>

そこで、xml ファイルに edittext を生成し、findById() 関数を実行しました。

    edittext = (EditText) findViewById(R.id.eText);

しかし、show() メソッドが呼び出されると、アプリケーションがクラッシュします。コードでカーソルの色を変更する方法や、エラーなしで実装する方法を知っている人はいますか? どうも

1 つのアラート ダイアログ コードを編集します。

    input = (EditText) findViewById(R.id.eText);
    InputFilter[] filters = new InputFilter[1];
    filters[0] = new InputFilter.LengthFilter(20);
    input.setFilters(filters);
    input.setTextColor(Color.WHITE);

    alertbuilder = new AlertDialog.Builder(this,AlertDialog.THEME_HOLO_DARK);
    alertbuilder.setTitle("Enter the levelname!");
    alertbuilder.setMessage("To change the levelname after it has been created, tap and hold the icon of the level.");

    alertbuilder.setView(input);

    alertbuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(final DialogInterface dialog, final int whichButton) {
    Editable value = (Editable) input.getText();
      // Do stuff
        dialog.dismiss();

      }

    });

    alertbuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
          dialog.dismiss();
      }
    });
    alertadd=alertbuilder.create();
    alertadd.show(); //crash here

edit2 logcat:

04-22 20:00:34.217: D/OpenGLRenderer(2475): Flushing caches (mode 0)
04-22 20:00:37.216: D/Input(2475): VelocityTracker: int datax = 15
04-22 20:00:37.216: D/Input(2475): VelocityTracker: int m_velocity_magnify_x = 1.500000
04-22 20:00:37.216: D/Input(2475): VelocityTracker: int datay = 20
04-22 20:00:37.216: D/Input(2475): VelocityTracker: int m_velocity_magnify_y = 2.000000

logcat にエラー メッセージが表示されません。私は実際に Class File Editor - Source not found - Error を取得します

4

1 に答える 1

1

問題はここにあると思います:

input = (EditText) findViewById(R.id.eText);

EditTextアクティビティ/フラグメント レイアウトの一部である場合、それをダイアログ コンテンツとして設定することはできません。

ファイルを作成することをお勧めしますdialog_content.xml

<?xml version="1.0" encoding="utf-8"?>
<EditText 
    style="@style/yourEditTextStyle"
    android:id="@+id/myEditTextId"
    android:layout_height="wrap_content"
    android:layout_width="match_parent" />

そしてEditText、この方法で作成します:

input = (EditText) LayoutInflater.from(this).inflate(R.layout.dialog_content, null);
于 2013-04-22T18:59:29.707 に答える