Android:自动填充文本视图

时间:2012-10-09 01:03:05

标签: android autocompletetextview

我正在开发一个使用Google商家信息自动填充的Android应用程序。

当我从自动填充列表视图中选择一个项目时,整个字符串显示在自动完成文本视图中,当它不适合一行时,文本视图会自动变大以适应整个字符串。

我不希望发生这种情况,我希望文本视图保持相同的大小,如果无法看到整个字符串也没关系。我怎么能这样做?

关于自动填充文本视图的另一个问题。我需要在文本视图旁边有一个按钮,以便用户可以提交搜索。建议的列表视图仅与自动填充文本视图一样宽,它不会填满整个屏幕宽度,因为文本视图的右侧有一个按钮。我可以使建议列表视图填满屏幕的宽度吗?

4 个答案:

答案 0 :(得分:2)

  1. 我使用android:singleLine作为singleLine的参考。
  2. 如果您想提出建议listview,可以使用这些属性android:dropDownWidth="xx dp",请参阅此处android:dropDownWidth。您应该在运行时计算屏幕大小以获得正确的值。
  3. 其他属性可以帮助您对齐下拉列表视图android:dropDownHorizontalOffset here

答案 1 :(得分:0)

尝试maxWidth

android:maxWidth

Makes the TextView be at most this many pixels wide.

Must be a dimension value, which is a floating point number appended with a unit such
as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp 
(scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or
theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol maxWidth.

Related Methods

setMaxWidth(int)

编辑 - 您可以使用android:imeOptionsactionGo将“go”按钮添加到弹出式键盘。

答案 2 :(得分:0)

  

我希望文本视图保持相同的大小,如果是的话无关紧要   整个字符串无法看到

您可以使用android:singleLine作为singleLine的参考。

  

我可以将建议列表视图填满屏幕宽度吗?

不要认为可以使用AutoCompleteTextView。您可以选择用户: Bill Gary 建议,通过添加android:imeOptions="actionGo",您可以在软键盘上设置Go按钮。然后,在您的活动上,将OnEditorActionListener添加到您的AutoCompleteTextView:

    actv.setOnEditorActionListener(new OnEditorActionListener() {

        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            // TODO Auto-generated method stub
            if (actionId == EditorInfo.IME_ACTION_GO) {
                Toast.makeText(MainActivity.this, "GO", Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    });

答案 3 :(得分:0)

AutoCompleteTextView a=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
String s[]={"Monday","Tuesday","Wednesday","Months"};
ArrayAdapter<String> adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,s);
a.setAdapter(adapter);