Android 无法使用OnItemSelectedListener在textview上显示选定微调器值
我试图在文本视图上显示微调器的选定值,但我发现它什么也没有显示,我不明白问题出在哪里,我正在使用onclick中的itemselected listener,我不明白有什么问题请帮助Android 无法使用OnItemSelectedListener在textview上显示选定微调器值,android,Android,我试图在文本视图上显示微调器的选定值,但我发现它什么也没有显示,我不明白问题出在哪里,我正在使用onclick中的itemselected listener,我不明白有什么问题请帮助 package com.vedicrishiastro.kundli.Screens.Extras; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.su
package com.vedicrishiastro.kundli.Screens.Extras;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.internal.widget.AdapterViewCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.vedicrishiastro.kundli.R;
import com.vedicrishiastro.kundli.Screens.AbstractActivity;
public class Settings extends AbstractActivity implements View.OnClickListener {
private LinearLayout linearSelectLang,linearSetDefault,linearSelectPanch;
private TextView txtSelectLang,txtSetDefault,txtSelectPanch;
private Spinner spinner1,spinner2,spinner3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
linearSelectLang = (LinearLayout)findViewById(R.id.LinearSelectLang);
linearSetDefault = (LinearLayout)findViewById(R.id.LinearSetDefault);
linearSelectPanch = (LinearLayout)findViewById(R.id.LinearSelectPanch);
spinner1 = (Spinner)findViewById(R.id.settingSpinner1);
spinner2 = (Spinner)findViewById(R.id.settingSpinner2);
spinner3 = (Spinner)findViewById(R.id.settingSpinner3);
txtSelectLang = (TextView)findViewById(R.id.selectLangtext);
txtSetDefault = (TextView)findViewById(R.id.setdefaulttext);
txtSelectPanch = (TextView)findViewById(R.id.selectPanchtext);
linearSelectLang.setOnClickListener(this);
linearSetDefault.setOnClickListener(this);
linearSelectPanch.setOnClickListener(this);
spinner1.setVisibility(View.GONE);
spinner2.setVisibility(View.GONE);
spinner3.setVisibility(View.GONE);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(position == 0){
txtSelectLang.setText("English");
}
else
{
txtSelectLang.setText("Hindi");
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public void onClick(View view){
int id = view.getId();
switch (id){
case R.id.LinearSelectLang:
{
spinner1.performClick();
}
break;
case R.id.LinearSetDefault:
{
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch(position){
case 0:txtSetDefault.setText("Kundli");break;
case 1:txtSetDefault.setText("Panchang");break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinner2.performClick();
spinner2.setVisibility(View.GONE);
}
break;
case R.id.LinearSelectPanch:
{
spinner3.performClick();
String text = spinner3.getSelectedItem().toString();
txtSelectPanch.setText(text);
spinner3.setVisibility(View.GONE);
}
break;
}
}
}
package com.vedicrishiastro.kundli.Screens.Extras;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.support.v7.app.AppActivity;
导入android.support.v7.internal.widget.AdapterViewCompat;
导入android.support.v7.widget.Toolbar;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.LinearLayout;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
进口com.vedicrishiastro.kundli.R;
导入com.vedicrishiastro.kundli.Screens.AbstractActivity;
公共类设置扩展了AbstractActivity实现了View.OnClickListener{
private LinearLayout linearSelectLang、linearSetDefault、linearSelectPanch;
私有文本视图txtSelectLang、txtSetDefault、txtSelectPanch;
专用喷丝头1、喷丝头2、喷丝头3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u设置);
linearSelectLang=(LinearLayout)findViewById(R.id.linearSelectLang);
linearSetDefault=(LinearLayout)findViewById(R.id.linearSetDefault);
linearSelectPanch=(LinearLayout)findViewById(R.id.linearSelectPanch);
喷丝头1=(喷丝头)findViewById(R.id.settingSpinner1);
喷丝头2=(喷丝头)findViewById(R.id.settingSpinner2);
喷丝头3=(喷丝头)findViewById(R.id.settingSpinner3);
txtSelectLang=(TextView)findViewById(R.id.selectLangtext);
txtSetDefault=(TextView)findViewById(R.id.setdefaulttext);
txtSelectPanch=(TextView)findViewById(R.id.selectPanchtext);
linearSelectLang.setOnClickListener(此);
linearSetDefault.setOnClickListener(此);
linearSelectPanch.setOnClickListener(此);
喷丝头1.设置可见性(视图已消失);
喷丝头2.设置可见性(视图已消失);
喷丝头3.设置可见性(视图已消失);
spinner1.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置==0){
txtSelectLang.setText(“英语”);
}
其他的
{
txtSelectLang.setText(“印地语”);
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
公共void onClick(视图){
int id=view.getId();
开关(id){
案例R.id.LinearSelectLang:
{
喷丝头1.performClick();
}
打破
案例R.id.LinearSetDefault:
{
spinner2.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
开关(位置){
案例0:txtSetDefault.setText(“Kundli”);break;
案例1:txtSetDefault.SETEXT(“潘昌”);中断;
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
喷丝头2.performClick();
喷丝头2.设置可见性(视图已消失);
}
打破
案例R.id.LinearSelectPanch:
{
喷丝头3.performClick();
字符串文本=spinner3.getSelectedItem().toString();
txtSelectPanch.setText(文本);
喷丝头3.设置可见性(视图已消失);
}
打破
}
}
}
这可能是因为,如果所选项目与以前选择的项目不同,则只会调用onItemSelected…@OpiateFuch您可以详细说明吗?例如:项目1仍处于选中状态。现在您再次选择项目1…则不会发生任何事情。相反,只有在选择项目2时,才会触发事件。但在上面我看到您直接将可见性设置为GONE…我不知道这是否会导致该问题,但请删除此项并重试…这可能是因为仅当所选项目与以前所选项目不同时才会调用onItemSelected…@Opiatefuchs您可以详细说明吗?例如:项目1仍处于选中状态。现在您再次选择项目1…则不会发生任何事情。相反,只有在选择项目2时,才会触发事件。但在上面我看到您正在将可见性直接设置为GONE…我不知道这是否会导致该问题,但请删除此项并重试。。。