单击时如何触发微调器事件?
How can I trigger spinner event when on click?
我遵循了一些例子。他们正在介绍如下方式。但是当我尝试这样做时,出现了这个错误
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:1224)
at com.jakchang.savelocation.databinding.ActivityViewmemoBindingImpl.executeBindings(ActivityViewmemoBindingImpl.java:174)
我只是按照示例进行操作,但它对我不起作用。
需要帮助..提前致谢
resList = res.getStringArray(R.array.font_spinner);
SpinnerAdapter spinnerAdapter= new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,resList);
binding.fontlist.setAdapter(spinnerAdapter);
binding.fontlist.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"Item : "+binding.fontlist.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
您的代码片段不完整,但我尝试在自己的 activity 中实现它,因此请检查以下代码并将其与您的解决方案进行比较。我觉得应该可以。
public class MainActivity extends AppCompatActivity {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
SpinnerAdapter spinnerAdapter= new ArrayAdapter(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.font_spinner));
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"Item : "+ spinner.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
首先您需要获取视图并将其存储在带有 findViewById(R.id.spinner)
的 class 变量中,当然您必须在 xml 文件中设置 ID。接下来在 ArrayAdapter 中使用 android.R.layout.simple_spinner_item
只是为了保持简单。最后在 spinner 对象上设置适配器和监听器。
我遵循了一些例子。他们正在介绍如下方式。但是当我尝试这样做时,出现了这个错误
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:1224)
at com.jakchang.savelocation.databinding.ActivityViewmemoBindingImpl.executeBindings(ActivityViewmemoBindingImpl.java:174)
我只是按照示例进行操作,但它对我不起作用。
需要帮助..提前致谢
resList = res.getStringArray(R.array.font_spinner);
SpinnerAdapter spinnerAdapter= new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,resList);
binding.fontlist.setAdapter(spinnerAdapter);
binding.fontlist.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"Item : "+binding.fontlist.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
您的代码片段不完整,但我尝试在自己的 activity 中实现它,因此请检查以下代码并将其与您的解决方案进行比较。我觉得应该可以。
public class MainActivity extends AppCompatActivity {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
SpinnerAdapter spinnerAdapter= new ArrayAdapter(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.font_spinner));
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"Item : "+ spinner.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
首先您需要获取视图并将其存储在带有 findViewById(R.id.spinner)
的 class 变量中,当然您必须在 xml 文件中设置 ID。接下来在 ArrayAdapter 中使用 android.R.layout.simple_spinner_item
只是为了保持简单。最后在 spinner 对象上设置适配器和监听器。