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

编辑2日志猫:

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 中没有收到错误消息。我实际上得到了一个类文件编辑器 - 找不到源 - 错误

4

1 回答 1

1

我认为问题出在这里:

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

EditText如果它是 Activity/Fragment 布局的一部分,则不能将其设置为 Dialog 内容。

我建议你创建一个文件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 回答