Android – 如何显示具有值的微调器但显示不同的微调器
对于我的Android应用程序,我需要使用一个显示XML树的微调器。 该树是用户理解他可以选择的值的级别的必要条件。
这是我现在所拥有的图片:
正如你所看到的,我已经设置了一些“>”和一些空间来模拟树。 我现在想要的是,当用户选择一个条目时,显示没有这些符号的值。
今天,微调器显示如下值:
这个词是“>超市”,但我想要的是“超市”,只有那个。 有没有办法修改微调器显示的选定值而不是列表?
我希望你能帮助我。
问候。
V.
你可以这样做的想法
使您的微调器不可见将一个textView放在微调器后面,将TextView文本设置为微调所选项目
textView.settext(spinner.getSelectedItem().replace(">","").trim()));
别忘了将微调器放在textView上,否则你不会得到微调器点击事件
以下是我需要的代码:
首先,用下面的代码部分替换你的微调器:
在名为custom_spinner.xml
的可绘制文件夹中创建一个新的XML文件,并放入该代码:
下载这两张图片并将它们添加到您的drawable文件夹中( spinner_pressed.9.png
和spinner_normal.9.png
):
在您的活动中,添加以下变量:
private Spinner spinner; private Button fake_btn; private TextView fake_text;
在onCreate方法中,添加:
spinner = (Spinner) findViewById(R.id.spinner); fake_btn = (Button) findViewById(R.id.fake_btn); fake_text = (TextView) findViewById(R.id.fake_text); fake_btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { spinner.performClick(); } }); spinner_manual.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View childView, int position, long id) { String value = (String) spinner.getItemAtPosition(position); fake_text.setText(value); } public void onNothingSelected(AdapterView parentView) {} });
你在那里,它应该工作。