我有一个由3个EditText字段组成的活动(其中包括TextViews和几个按钮)。我还有一个AutoCompleteTextView,其中包含一个使用ArrayAdapter的String列表。
每当我在模拟器中测试应用程序时,我可以在键盘启动时键入但不显示文本(它仍会给出预测),并且只有键盘关闭后文本才会出现在EditText框中。当我在手机上测试时也会发生这种情况。但是,如果屏幕键盘没有启动并且您只是正常打字,它会在您在模拟器上键入时显示并显示。
我不明白为什么!
这是我的Activity XML(其中EditText是前三个块)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/l"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_x="3dp"
android:layout_y="5dp"
android:background="@drawable/gymbg" >
<AutoCompleteTextView android:id="@+id/inputExercise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:inputType="text"
android:layout_alignParentRight="true"
android:layout_below="@+id/timeSet"
android:layout_margin="10dp"
android:layout_marginTop="50dp"
android:width="200dp" />
<EditText
android:id="@+id/inputWeight"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/inputExercise"
android:layout_margin="10dp"
android:layout_marginTop="50dp"
android:width="200dp" >
</EditText>
<EditText
android:id="@+id/inputReps"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/inputWeight"
android:layout_margin="10dp"
android:layout_marginTop="50dp"
android:width="200dp" >
</EditText>
<TextView
android:id="@+id/timeMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="@string/timeMain"
android:textSize="32sp"
android:textColor="#0F293B"/>
<TextView
android:id="@+id/timeSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/timeMain"
android:layout_centerHorizontal="true"
android:layout_marginTop="24dp"
android:text="@string/timeSet"
android:layout_marginBottom="50dp"
android:textColor="#0F293B"/>
<TextView
android:id="@+id/labExercise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/addbutton"
android:layout_alignParentLeft="true"
android:layout_below="@+id/timeSet"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:layout_marginLeft="15dp"
android:text="@string/labExercise"
android:layout_toLeftOf="@+id/inputExercise"
android:textColor="#ffffff"/>
<Button
android:id="@+id/addbutton"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_margin="10dp"
android:text="@string/add" />
<Button
android:id="@+id/startStop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/addbutton"
android:layout_alignParentLeft="true"
android:layout_margin="10dp"
android:text="@string/startStop" />
<TextView
android:id="@+id/labWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/inputExercise"
android:layout_margin="10dp"
android:text="@string/labWeight"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/labReps"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/inputReps"
android:layout_margin="10dp"
android:text="@string/labReps"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/seePrevious"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/inputExercise"
android:layout_centerHorizontal="true"
android:layout_marginBottom="22dp"
android:text="@string/tapToViewPrevious"
android:textColor="#505050"/>
</RelativeLayout>
这是我在我的活动中使用的代码:(我已经删除了不必要的代码)
public class MyWorkoutDiary1Activity extends Activity implements OnClickListener, TextWatcher
{
TextView seePrevious;
DatabaseHandler db;
AutoCompleteTextView myAutoComplete;
ArrayList<String> exerciseType = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
exercise = new EditText(this);
exercise = (EditText)findViewById(R.id.inputExercise);
db = new DatabaseHandler(this);
exerciseType = db.getUniqueExercises();
myAutoComplete = (AutoCompleteTextView)findViewById(R.id.inputExercise);
myAutoComplete.addTextChangedListener(this);
myAutoComplete.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, exerciseType));
weight = new EditText(this);
weight = (EditText)findViewById(R.id.inputWeight);
reps = new EditText(this);
reps = (EditText)findViewById(R.id.inputReps);
}
}
感谢您阅读
答案 0 :(得分:4)
事实上,您的文字正在被打字,但这是一个小错误,使您的文字颜色与您的背景相同,所以您不会看到它。这可以通过做两件事来轻松解决:
1)只需更改textColor
的{{1}},在布局中定义它:
EditText
或动态:
android:textColor="..."
2)更改清单中的扩展主题:
EditText et = (EditText) findViewById(R.id.your_edittext);
et.setTextColor(Color.RED);
3)在<application android:theme="@style/Theme.Light.NoTitleBar.Workaround" ... >
创建使用固定样式的新主题:
res/values/themes.xml
4)现在位于<style name="Theme.Light.NoTitleBar.Workaround" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewLight</item>
<item name="android:dropDownItemStyle">@style/Widget.DropDownItemLight</item>
</style>
的这些样式应该固定颜色:
res/values/styles.xml
我知道这很糟糕,但是试一试,如果有效,请尝试找到适合您布局的属性组合。
答案 1 :(得分:2)
好的,所以我找出了问题所在!
我没有发布的代码,因为我认为它是'无关'包含一个帖子
public static Runnable updateTimerMethod = new Runnable()
{
public void run()
{
sessionTimer.setText(TimerHandler.theTime);
myHandler.postDelayed(this, 0);
}
};
我意识到线程基本上占用了所有的活动(我真的不知道如何正确解释),将postDelayed设为0.一旦我将其更改为... 100,那么EditText工作
感谢@NKN谁帮助了我。
这可能是我特有的,但希望这会对其他人有所帮助。
答案 2 :(得分:2)
对我有用也可能对其他人有帮助,打开你的清单文件并设置hardwareAccelerated =“true”。
<application
android:allowBackup="true"
.....
android:hardwareAccelerated="true">
有关HardwareAccelerated https://developer.android.com/guide/topics/graphics/hardware-accel.html
的更多信息