无法在编辑文本视图中输入文本
Unable to enter text in edit text view
我正在学习工具栏教程,当我尝试在它下面添加编辑文本然后在我的物理设备上 运行 它时,我无法在其中输入任何文本。我不知道我做错了什么。我在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>
这是我的主activity:
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);
}
您的代码似乎没问题。
我不确定它是否有帮助,但您可以尝试按如下方式更新您的布局代码:
<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_alignParentLeft
和 layout_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"/>
我自己发现了问题。我忘了继承一些主题的基本编辑文本,例如:
<style name="CustomEditText" parent="Widget.AppCompat.EditText">
<item name="android:textColor">#ab42</item>
</style>
我正在学习工具栏教程,当我尝试在它下面添加编辑文本然后在我的物理设备上 运行 它时,我无法在其中输入任何文本。我不知道我做错了什么。我在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>
这是我的主activity:
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);
}
您的代码似乎没问题。
我不确定它是否有帮助,但您可以尝试按如下方式更新您的布局代码:
<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_alignParentLeft
和 layout_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"/>
我自己发现了问题。我忘了继承一些主题的基本编辑文本,例如:
<style name="CustomEditText" parent="Widget.AppCompat.EditText">
<item name="android:textColor">#ab42</item>
</style>