当我使用 if else 然后将值传递给设置 onClick 时,如何获取微调器值?

Posted

技术标签:

【中文标题】当我使用 if else 然后将值传递给设置 onClick 时,如何获取微调器值?【英文标题】:how can get spinner values when I used if else then pass value to setonClick? 【发布时间】:2021-10-17 18:37:51 【问题描述】:

如果我使用 if else 然后将值传递给 setonClick,如何获取微调器值?

在我的代码中,我使用这种方法来设置微调器值

DatabaseReference chk_sub  = FirebaseDatabase.getInstance()......
chk_sub.addValueEventListener(new ValueEventListener() 
if(xxxxxx)
List<String> sub = new ArrayList<>();
sub.add(0, getApplicationContext().getResources().getString(R.string.choose_sub));
sub.add("USA");
sub.add("CA");
ArrayAdapter<String> dataSpinnerAdapter;
dataSpinnerAdapter = new ArrayAdapter(getApplication(), android.R.layout.simple_spinner_item, sub);
                    dataSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataSpinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
                            if(parent.getItemAtPosition(position).equals(getApplicationContext().getResources().getString(R.string.choose_sub)))
    //do nothing
 else 
    spinner_item = parent.getItemAtPosition(position).toString();
    //Toast.makeText(parent.getContext(),"Selected : "+item, Toast.LENGTH_SHORT).show();
       
   
 


我希望我能得到 spinner sub value 因为我需要判断

post.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 

                if( --  how can get spinner value in here? --)
                   //  
                else 
Toast.makeText(getApplication(), getApplicationContext().getResources().getString(R.string.must_upload), Toast.LENGTH_SHORT).show();
                

            
        );

【问题讨论】:

【参考方案1】:

如果您只想在帖子点击事件的 if(condition=spinner value) 中使用选定的微调器项目,即 post.onClick(),只需获取微调器选定的项目

您的代码将如下所示

post.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                if(spinner.getSelectedItem().equals("your compare value"))
                   // do whatever you want
                else 
Toast.makeText(getApplication(), getApplicationContext().getResources().getString(R.string.must_upload), Toast.LENGTH_SHORT).show();
                

            
        );

【讨论】:

以上是关于当我使用 if else 然后将值传递给设置 onClick 时,如何获取微调器值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从组件传递给道具并设置状态

ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller

将值从视图传递给助手

三目运算

将值传递给“注入脚本”而不是依赖全局变量?

将值传递给子组件Angular 7