无法在编辑文本视图中输入文本

时间:2015-06-10 21:22:37

标签: android android-edittext

我正在关注工具栏教程,当我尝试在其下面添加编辑文本然后在我的物理设备上运行它时,我无法输入任何文本。我不知道我做错了什么。我将自定义文本颜色应用于apptheme中的编辑文本,但我怀疑问题是因为这个问题。

这是我的xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".MainActivity">
<include
    android:id="@+id/toolbar"
    layout="@layout/tool_bar"/>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editText"
    android:layout_below="@+id/toolbar"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:textSize="30sp"
    android:hint="enter text"/>

这就是我在style.xml文件中的内容:

sources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/ColorPrimary</item>
    <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
    <item name="android:editTextStyle">@style/CustomEditText</item>
</style>
<style name="CustomEditText">
    <item name="android:textColor">#ab42</item>
</style>

这是我的主要活动:

public class MainActivity extends AppCompatActivity {
private Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if(id == R.id.action_search){
        Toast.makeText(this,"SEARCH",Toast.LENGTH_LONG).show();
    }else if(id == R.id.action_user){
        Toast.makeText(this,"User",Toast.LENGTH_LONG).show();
    }else{
        Toast.makeText(this,"Overflow",Toast.LENGTH_LONG).show();
    }

    return super.onOptionsItemSelected(item);
}

enter image description here

2 个答案:

答案 0 :(得分:1)

您的代码似乎没问题。

我不确定,是否有帮助,但您可以尝试更新布局代码,如下所示:

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editText"
    android:layout_below="@+id/toolbar"
    android:textSize="30sp"
    android:hint="enter text"/>

我已移除layout_alignParentLeftlayout_alignParentStart个属性,并将layout_width的值从wrap_content更改为match_parent

这只是我的猜测。

此外,您可以明确将EditText定义为editable

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editText"
    android:layout_below="@+id/toolbar"
    android:textSize="30sp"        
    android:hint="enter text"
    android:editable="true"/>

答案 1 :(得分:1)

我自己找到了问题。我忘了继承一些主题的基本编辑文本,如:

<style name="CustomEditText" parent="Widget.AppCompat.EditText">
    <item name="android:textColor">#ab42</item>
</style>