Java android EditText在键入文本时滞后
我正在开发某种聊天应用程序,一切进展顺利,但我遇到了一个问题。 EditText滞后,每当我在EditText中键入字母时,我的android键盘都会在第二秒或几秒钟内冻结。我真的不知道该提供什么代码,因为它只是一个简单的文本框。我是这样做的:Java android EditText在键入文本时滞后,java,android,android-edittext,lag,Java,Android,Android Edittext,Lag,我正在开发某种聊天应用程序,一切进展顺利,但我遇到了一个问题。 EditText滞后,每当我在EditText中键入字母时,我的android键盘都会在第二秒或几秒钟内冻结。我真的不知道该提供什么代码,因为它只是一个简单的文本框。我是这样做的: linforbutton.add(new LinearLayout(this)); //linear layout on the bottom os creen for edittext and button RelativeLayout.La
linforbutton.add(new LinearLayout(this)); //linear layout on the bottom os creen for edittext and button
RelativeLayout.LayoutParams params =
new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
linforbutton.get(x).setLayoutParams(params);
linforbutton.get(x).setBackgroundColor(0xff426193);
linforbutton.get(x).setOrientation(LinearLayout.HORIZONTAL);
int padding_in_dp1 = 3;
final float scale1 = getResources().getDisplayMetrics().density;
int padding_in_px1 = (int) (padding_in_dp1 * scale1 + 0.5f);
linforbutton.get(x).setPadding(0, 0, 0, 0);
relmsg.get(x).addView(linforbutton.get(x));
msginput.add(new EditText(this));
msginput.get(x).setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
msginput.get(x).setMaxLines(3);
msginput.get(x).setMinLines(1);
msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
msginput.get(x).setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
msginput.get(x).setImeOptions(EditorInfo.IME_ACTION_SEND);
msginput.get(x).setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
linforbutton.get(x).addView(msginput.get(x));
btninput.add(new Button(this));
btninput.get(x).setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btninput.get(x).setText("Отпр.");
int padding_in_dp2 = 20;
final float scale2 = getResources().getDisplayMetrics().density;
int padding_in_px2 = (int) (padding_in_dp2 * scale2 + 0.5f);
btninput.get(x).setPadding(padding_in_px2, 0, padding_in_px2, 0);
linforbutton.get(x).addView(btninput.get(x));
我正在做一些视图,所以我有一个for循环,不要看阵列。我尝试删除数组,只创建一个视图、一个编辑文本和一个按钮,但没有成功。因此,您的线程可能会相互冲突。环顾一下你的事件监听器,也许其中一个监听器控制着这个过程。不久前,我的GPS侦听器出现了这个问题(onLocationChanged)
我从这个监听器将数据发布到服务器,它刚刚终止了应用程序。将代码块移动到新线程后,解决了我的问题。您是否有多个线程/或异步任务?我的appWell中总共有6个线程,这可能是您的问题。看看你是否可以在一些线程中添加一些暂停来提高性能。是的,这似乎就是问题所在。我需要从另一个线程访问我的GUI线程来绘制一些东西,但最终我将所有侦听器都推到了主线程。