这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/etTweetReview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:ems="10"
android:hint="Discuss up to 140 characters"
android:imeOptions="actionDone"
android:inputType="textCapSentences"
android:lines="2"
android:maxLength="140"
android:paddingBottom="10dp"
android:singleLine="false" />
<Button
android:id="@+id/theReviewBarButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="5dp"
android:text="Submit Review"
android:textSize="22sp" />
<Spinner
android:id="@+id/spinnerSort"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" />
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:scrollbars="none"
android:layout_marginRight="5dp"
android:layout_marginTop="8dp" >
</ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
当EditText框到达结尾时,我希望它包装到下一行.现在,它只是继续向右移动屏幕上的所有内容.
我有一个多行EditText:
<EditText
android:layout_gravity="center"
android:id="@+id/txtMessage"
android:layout_height="wrap_content"
android:layout_below="@+id/lblMessage"
android:layout_width="wrap_content"
android:width="250dip"
android:text=""
android:maxLength="760"
android:lines="4">
</EditText>
Run Code Online (Sandbox Code Playgroud)
现在内容与中间对齐.我希望将内容与顶部对齐如下:
垂直对齐的文本示例http://img28.imageshack.us/img28/3972/edittext.png
有没有财产可以做到这一点?
在你下注并标记为重复之前,请阅读我的问题.
我已经阅读了讨论这个问题的其他问题,所有问题都适用于我的布局,除了第一个创建的布局.
目前,这是我onCreate方法的首要任务:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
^这使得它至少在启动时没有弹出键盘,但EditText仍然专注于.
这是XML我的EditText:
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/changePass"
android:layout_centerHorizontal="true"
android:layout_marginTop="167dp"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPassword"
android:maxLength="30" >
</EditText>
Run Code Online (Sandbox Code Playgroud)
这是我开展活动时的样子:

问题是,对于某些手机,如果EditText像这样聚焦,他们就无法写入.我希望它不要集中注意力.
我所做的工作适用于下一个布局,因为它EditTexts没有关注,看起来更像是这样:

请注意,它的布局是相同的.这是用户返回到此屏幕后的屏幕,这表示没有任何问题,XML因为这是相同的XML,但问题EditText是仅关注创建活动的时间.
我已经完成了研究,所有其他问题对我没有帮助(他们确实帮助键盘不显示,谢天谢地).我怎样才能使它EditText在启动时看起来像第二个截图,而不是第一个?
我想TextWatcher为多个EditText字段实现接口.目前我正在使用:
text1.addTextChangedListener(this);
text2.addTextChangedListener(this);
Run Code Online (Sandbox Code Playgroud)
然后重写我的Activity中的方法:
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
// do some operation on text of text1 field
// do some operation on text of text2 field
}
Run Code Online (Sandbox Code Playgroud)
然而,这工作正常但我正在寻找其他方法,以便我可以明确地确定当前关注的EditText字段SoftKeyboard.
android interface textwatcher android-edittext android-activity
如何在Android上创建一个EditText,使得用户可能不会输入多行文本,但显示仍然是多行的(即有文字换行而不是文本转到右侧)?
它类似于内置的SMS应用程序,我们无法输入换行符,但文本以多行显示.
我正在使用自定义的EditText视图.我已经覆盖了OnKeyUp事件,并且能够捕获Enter键按下.现在我的要求是,当用户输入文字"你好.你好吗?" 然后将光标保持在单词"are"之后并按回车键,我需要获取光标位置,以便我可以在按下Enter键时提取光标后的文本.请让我知道如何做到这一点.感谢您的时间和帮助.
我想在editText中有一个常量文本,如:
http://<here_user_can_write>
Run Code Online (Sandbox Code Playgroud)
用户不应该从" http://" 删除任何字符,我搜索了这个并发现了这个:
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
}
}
});
Run Code Online (Sandbox Code Playgroud)
但我不知道它是否限制用户不从开始到结束限制删除任何字符.我也无法理解Spanned类的使用.
一种方法是一个很好的选择,如果我们可以放入TextView内部,EditText但我不认为这是可能的Android,因为两者都是视图,是否可能?
我有列表项目EditText,我不知道会有多少项目.当我输入一些文本时EditText,我有一个问题,然后向下滚动RecyclerView,在我再次向上滚动后,我的第一个没有文字EditText.
我想知道什么,我应该在哪里编写代码,以便在用户输入或完成输入时(我想用a做TextWatcher)在EditText文本中保存到文件中(我将它保存在一个文件中).外部存储中的txt文件)
我应该onCreate在活动方法或适配器类或其他地方这样做吗?
这是一些代码
public class MainActivity extends Activity {
RecyclerView mRecyclerView;
MyAdapter mAdapter;
String[] mDataSet= new String[20];
@Override
protected void onCreate(Bundle savedInstanceState) {
// generating text for editText Views
for (int i = 0; i<=19; i++){
mDataSet[i]= "EditText n: "+i;
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mAdapter = new MyAdapter(mDataSet);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setHasFixedSize(true);
}
Run Code Online (Sandbox Code Playgroud)
public class MyAdapter …Run Code Online (Sandbox Code Playgroud) 我知道这里有很多类似的问题,但我无法在简单的示例应用程序中使用任何提供的解决方案.
第一次显示软键盘时会出现问题.显示后,只需再次按editText即可进行编辑.
尝试以下方法:
android:windowSoftInputMode="adjustPan|adjustResize"
Run Code Online (Sandbox Code Playgroud)
这不是解决任何问题.在弹出软键盘后,似乎必须使用此行来调整活动的大小.不幸的是,它也导致任何EditTexts失去焦点.这可能是ListView本身在调整大小过程后获得关注的焦点.所以我尝试了以下解决方法:
listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
Run Code Online (Sandbox Code Playgroud)
这总是导致第一可见的EditText了ListView包含获得焦点,这是不可取的.第二行中的第二个EditText应该在按下时获得焦点,这不会发生.此外,如果我最终设法聚焦另一个EditText,然后显示第一个(例如通过按下'Next' softkeyboard),第一个可见的将在键盘被解除后重新获得焦点并且ListView再次调整为其完整大小.
我尝试了其他一些事情,比如拦截onFocusChange()ListView的事件,同时知道它按下了哪个EditText TouchListener.再次请求关注某个EditText也没有取得任何成功.
对于相关项目,使用a ScrollView而不是ListView其他用户建议的选项不是一种选择.
android ontouchlistener android-softkeyboard android-listview android-edittext
singleLineis /用于xml布局文件中TextView,EditText如下所示:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud)
SO上的一些人说singleLine不赞成,而其他人仍然建议使用它.有时甚至似乎有必要在maxLines="1"不起作用时使用.(见这里,这里和这里)
文档应该是回答这个问题的地方,对吧?在这里,他们说:
此常量在API级别3中已弃用.
不推荐使用此属性.
maxLines相反,使用更改静态文本的布局,并使用textMultiLineinputType属性中的标志代替可编辑的文本视图(如果提供了singleLine和inputType,则inputType标志将覆盖singleLine的值).
但是,在TextView文档中,没有任何迹象表明它已被弃用,无论是for android:singleLine还是for setSingleLine或for setTransformationMethod.相比之下,相同的TextView文档确实声明了其他类似STATUS_BAR_HIDDEN和fitSystemWindows不赞成的东西.所以是singleLine弃用的疏忽,被它"undeprecated",还是什么?
这个问题以前曾被问过,但不是问题的主要焦点(并没有得到回答).
android attributes textview android-edittext android-singleline
android ×10
android-edittext ×10
textview ×2
android-xml ×1
attributes ×1
focus ×1
interface ×1
java ×1
layout ×1
multiline ×1
textwatcher ×1