自动完成文本框问题

r00_a2lBUR 2017-07-14 04:36:43



我在试一下自动完成文本的功能,效果如上图。我想实现在用户点Android JKD时,系统能把用户选的结果直接填在输入结果后面,请教大家,这要用到自动完成文本的什么功能?

public class MainActivity extends AppCompatActivity {

private AutoCompleteTextView mAutoCompleteTextView;
private TextView mTextView;
private String[] m_sAutoS=null;
private ArrayAdapter<String> arrayAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

f_onCreate();
}

public void f_onCreate( )
{
mAutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.AutoCompleteTextView_Main_Test);
mTextView = (TextView)findViewById(R.id.TextView_Main_Show);

m_sAutoS = new String[]{"Android","Android JDK","Android Blog","Android BBS",
"Google Map","Google Search","Google Wear","Baidu Map","Baidu Search"};
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, m_sAutoS);
mAutoCompleteTextView.setAdapter(arrayAdapter);
}

public void e_Button_Main_Clean_Clicked(View view)
{
mAutoCompleteTextView.setText("");
mTextView.setText("输入结果:");
}
}
...全文
405 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2019-02-01
  • 打赏
  • 举报
回复
<LinearLayout 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="com.example.complete.MainActivity"
android:orientation="vertical" >

<AutoCompleteTextView
android:id="@+id/AutoCompleteTextView_Main_Test"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/TextView_Main_Show"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>
r00_a2lBUR 2017-07-21
  • 打赏
  • 举报
回复
引用 11 楼 zhaomissnan 的回复:
public class MainActivity extends AppCompatActivity { private AutoCompleteTextView mAutoCompleteTextView; private TextView mTextView; private String[] m_sAutoS=null; private ArrayAdapter<String> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); f_onCreate(); } public void f_onCreate( ) { mAutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.AutoCompleteTextView_Main_Test); mTextView = (TextView)findViewById(R.id.TextView_Main_Show); m_sAutoS = new String[]{"Android","Android JDK","Android Blog","Android BBS", "Google Map","Google Search","Google Wear","Baidu Map","Baidu Search"}; arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, m_sAutoS); mAutoCompleteTextView.setAdapter(arrayAdapter); mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ToastUtils.showShortToast("点击了"+position); e_Button_Main_Clean_Clicked(position); } }); } public void e_Button_Main_Clean_Clicked(int position) { mAutoCompleteTextView.setText(""); mTextView.setText("输入结果:"+m_sAutoS[position]); } } 在你代码基础上加了几行代码 你看下吧
谢谢你,不过这几天我暂停Android项目,要过些日子再试了。
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
引用 6 楼 r00_a2lBUR 的回复:
[quote=引用 5 楼 zhaomissnan 的回复:] [quote=引用 4 楼 r00_a2lBUR 的回复:] [quote=引用 3 楼 zhaomissnan 的回复:] [quote=引用 2 楼 r00_a2lBUR 的回复:] [quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果[/quote] 我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。[/quote] 是不是 比如 你输入了an 然后你点击了Android JKD 然后显示的结果是anAndroid JKD 还是显示的结果是Android JKD[/quote] 点击了Android JKD,在红色方框那里显示Android JKD [/quote] 你拿到请输入点击的值 然后赋值给输入结果就好了啊
r00_a2lBUR 2017-07-20
  • 打赏
  • 举报
回复
引用 5 楼 zhaomissnan 的回复:
[quote=引用 4 楼 r00_a2lBUR 的回复:]
[quote=引用 3 楼 zhaomissnan 的回复:]
[quote=引用 2 楼 r00_a2lBUR 的回复:]
[quote=引用 1 楼 zhaomissnan 的回复:]
直接给输入框赋值

这个离我想要的结果太远了。[/quote]
你想要的是什么结果[/quote]
我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。[/quote]
是不是 比如 你输入了an 然后你点击了Android JKD 然后显示的结果是anAndroid JKD
还是显示的结果是Android JKD[/quote]
点击了Android JKD,在红色方框那里显示Android JKD
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
引用 4 楼 r00_a2lBUR 的回复:
[quote=引用 3 楼 zhaomissnan 的回复:] [quote=引用 2 楼 r00_a2lBUR 的回复:] [quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果[/quote] 我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。[/quote] 是不是 比如 你输入了an 然后你点击了Android JKD 然后显示的结果是anAndroid JKD 还是显示的结果是Android JKD
r00_a2lBUR 2017-07-20
  • 打赏
  • 举报
回复
引用 3 楼 zhaomissnan 的回复:
[quote=引用 2 楼 r00_a2lBUR 的回复:] [quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果[/quote] 我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
引用 2 楼 r00_a2lBUR 的回复:
[quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
public class MainActivity extends AppCompatActivity { private AutoCompleteTextView mAutoCompleteTextView; private TextView mTextView; private String[] m_sAutoS=null; private ArrayAdapter<String> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); f_onCreate(); } public void f_onCreate( ) { mAutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.AutoCompleteTextView_Main_Test); mTextView = (TextView)findViewById(R.id.TextView_Main_Show); m_sAutoS = new String[]{"Android","Android JDK","Android Blog","Android BBS", "Google Map","Google Search","Google Wear","Baidu Map","Baidu Search"}; arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, m_sAutoS); mAutoCompleteTextView.setAdapter(arrayAdapter); mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ToastUtils.showShortToast("点击了"+position); e_Button_Main_Clean_Clicked(position); } }); } public void e_Button_Main_Clean_Clicked(int position) { mAutoCompleteTextView.setText(""); mTextView.setText("输入结果:"+m_sAutoS[position]); } } 在你代码基础上加了几行代码 你看下吧
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
就是添加适配器的点击item事件 setOnItemClickListener 然后得到点击的position 就可以了
zhaomissnan 2017-07-20
  • 打赏
  • 举报
回复
引用 8 楼 r00_a2lBUR 的回复:
[quote=引用 7 楼 zhaomissnan 的回复:] [quote=引用 6 楼 r00_a2lBUR 的回复:] [quote=引用 5 楼 zhaomissnan 的回复:] [quote=引用 4 楼 r00_a2lBUR 的回复:] [quote=引用 3 楼 zhaomissnan 的回复:] [quote=引用 2 楼 r00_a2lBUR 的回复:] [quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果[/quote] 我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。[/quote] 是不是 比如 你输入了an 然后你点击了Android JKD 然后显示的结果是anAndroid JKD 还是显示的结果是Android JKD[/quote] 点击了Android JKD,在红色方框那里显示Android JKD [/quote] 你拿到请输入点击的值 然后赋值给输入结果就好了啊[/quote] 问题是在点击Android JKD时,怎么拿到那个值?[/quote] mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ToastUtils.showShortToast("点击了"+position); } }); 这里的到的position跟你数组的下标是一样的从0开始 然后你显示结果 mTextView.setText("输入结果:"+m_sAutoS【position】);
r00_a2lBUR 2017-07-20
  • 打赏
  • 举报
回复
引用 7 楼 zhaomissnan 的回复:
[quote=引用 6 楼 r00_a2lBUR 的回复:] [quote=引用 5 楼 zhaomissnan 的回复:] [quote=引用 4 楼 r00_a2lBUR 的回复:] [quote=引用 3 楼 zhaomissnan 的回复:] [quote=引用 2 楼 r00_a2lBUR 的回复:] [quote=引用 1 楼 zhaomissnan 的回复:] 直接给输入框赋值
这个离我想要的结果太远了。[/quote] 你想要的是什么结果[/quote] 我是想要实现点击那个选项时,能把选项的文本显示在输入结果后面。[/quote] 是不是 比如 你输入了an 然后你点击了Android JKD 然后显示的结果是anAndroid JKD 还是显示的结果是Android JKD[/quote] 点击了Android JKD,在红色方框那里显示Android JKD [/quote] 你拿到请输入点击的值 然后赋值给输入结果就好了啊[/quote] 问题是在点击Android JKD时,怎么拿到那个值?
r00_a2lBUR 2017-07-18
  • 打赏
  • 举报
回复
引用 1 楼 zhaomissnan 的回复:
直接给输入框赋值
这个离我想要的结果太远了。
zhaomissnan 2017-07-17
  • 打赏
  • 举报
回复
直接给输入框赋值

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧