java - 无法从 Spinner 进入 setOnItemSelectedListener

标签 java android

基于来自 Android: Create spinner programmatically from array 的信息.我可以根据 ArrayList 从微调器中选择房间选项。但是,它永远不会进入进程 setOnItemSelectedListener。我不明白为什么会这样。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_room);
SpaceRoomTable = (TableLayout) findViewById(R.id.tvSpaceRoomTable);
AddroomButton = (Button)findViewById(R.id.btLinkAddRoom);
Backtomenu = (Button) findViewById(R.id.bBackToMenu_DogTrack);
Delete = ContextCompat.getDrawable(this, R.drawable.bin);
dropdown = (Spinner) findViewById(R.id.spinListRoom);
summitDelete  = (Button) findViewById(R.id.btDeleteSummit);


AddroomButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent LinkToEditroom = new Intent (EditRoom.this,AddRoom.class);
        startActivity(LinkToEditroom);
    }
});

Backtomenu.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent LinkToHomeMenu = new Intent(EditRoom.this,HomeMenu.class);
        EditRoom.this.startActivity(LinkToHomeMenu);
    }
});


showRoom();


ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,showitemName);
spinnerArrayAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown.setAdapter(spinnerArrayAdapter);

dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        //   Log.d("TEST","selection is ");
        Object Itemselected =    adapterView.getItemAtPosition(i);
        Toast.makeText(getApplicationContext(),"Inside"+String.valueOf(Itemselected),Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
});


}

最佳答案

在 XML 布局中:-

<Spinner
    android:id="@+id/dropdown"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

然后,在您的 Activity findViewById 中,如下所示:-

dropdown= (Spinner) findViewById(R.id.dropdown);

然后使用字符串数组和默认的 spinner 布局创建一个 ArrayAdapter :-

ArrayAdapter<String> spinnerArrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,showitemName);
spinnerArrayAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown.setAdapter(spinnerArrayAdapter);

对于 OnIemClickListener 使用如下:-

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ 

Spinner dropdown;
String[] showitemName = {"A","B","C","D","E"};

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



   dropdown= (Spinner) findViewById(R.id.dropdown);
   dropdown.setOnItemSelectedListener(this);

    ArrayAdapter<String> spinnerArrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,showitemName);
    spinnerArrayAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    dropdown.setAdapter(spinnerArrayAdapter);

}

  //Performing action onItemSelected and onNothing selected
  @Override
  public void onItemSelected(AdapterView<?> parent, View arg1, int position,long id) {
  Toast.makeText(getApplicationContext(),"Inside" + parent.getItemAtPosition(position) , Toast.LENGTH_LONG).show();
}

  @Override
  public void onNothingSelected(AdapterView<?> arg0) {
  // TODO Auto-generated method stub

}
}

更多信息:

您可以从这些链接查看详细信息:-

https://developer.android.com/guide/topics/ui/controls/spinner.html https://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html https://android--code.blogspot.in/2015/08/android-spinner-onitemselected.html http://www.java2s.com/Code/Android/UI/SpinnerItemSelectedListener.htm https://android--code.blogspot.in/2015/08/android-spinner-get-selected-item-text.html

关于java - 无法从 Spinner 进入 setOnItemSelectedListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49490757/

相关文章:

java - 将 Firebase 实时数据库中的值设置为 RadioButton

java - 在 tomcat 启动时, Autowiring : Exception sending context initialized event to listener instance of class

java - X509证书CSR DN解析

java - 扩展 ArrayList 和创建新方法

java - 将 .class 或 .java 文件作为 Eclipse 项目中的资源是否有任何限制?

android - 如何从 SQLite 中删除特定记录?

java - 静态资源文件?

java - 从目录中读取 HTML 文件并分别发送每个文件的内容以在 java spark 中的方法中进行处理

java - onResume 从堆栈中弹出 Activity

android - 如何在 android 上添加叠加层以映射?