Java 无法从微调器获取setOnItemSelectedListener内部
根据来自中国的信息。我可以根据ArrayList从微调器中选择房间选项。但是,它从未进入进程setOnItemSelectedListener。我不明白为什么会发生这种情况Java 无法从微调器获取setOnItemSelectedListener内部,java,android,Java,Android,根据来自中国的信息。我可以根据ArrayList从微调器中选择房间选项。但是,它从未进入进程setOnItemSelectedListener。我不明白为什么会发生这种情况 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_room); SpaceRoomTable = (TableLayout
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) {
}
});
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u edit\u room);
SpaceRoomTable=(TableLayout)findViewById(R.id.tvSpaceRoomTable);
AddroomButton=(按钮)findViewById(R.id.btLinkAddRoom);
Backtomenu=(按钮)findViewById(R.id.bBackToMenu\u DogTrack);
Delete=ContextCompat.getDrawable(this,R.drawable.bin);
下拉菜单=(微调器)findViewById(R.id.spinListRoom);
summitDelete=(按钮)findViewById(R.id.btDeleteSummit);
AddroomButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent LinkToEditroom=newintent(EditRoom.this,AddRoom.class);
startActivity(链接编辑室);
}
});
Backtomenu.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent linktohomemmenu=newintent(EditRoom.this,homemmenu.class);
编辑室.this.startActivity(链接到主页菜单);
}
});
陈列室();
ArrayAdapter SpinnerayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u项,showitemName);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
下拉式设置适配器(SpinneArrayAdapter);
setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
//Log.d(“测试”、“选择是”);
Object Itemselected=adapterView.getItemAtPosition(i);
Toast.makeText(getApplicationContext(),“Inside”+String.valueOf(Itemselected),Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
下面的代码将自动获取所选项目文本
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
// Log.d("TEST","selection is ");
String item = adapterView.getItemAtPosition(i).toString();
Toast.makeText(getApplicationContext(),"Inside"+item,Toast.LENGTH_SHORT).show();
}
public void未选中(AdapterView AdapterView、视图视图、int i、long l){
//Log.d(“测试”、“选择是”);
String item=adapterView.getItemAtPosition(i).toString();
Toast.makeText(getApplicationContext(),“Inside”+项,Toast.LENGTH\u SHORT.show();
}
在XML布局中:-
<Spinner
android:id="@+id/dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
然后使用字符串数组和默认的微调器
布局创建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);
更多信息:
您可以从以下链接签入详细信息:-
有关陈列室方法的更多信息
public void showRoom()
{
refroom.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
int Length_Record = dataSnapshot.child("CurrentUser").child("Tracking").child("ListRoom").child("LIST_ROOM_LENGTH").getValue(int.class);
int RunRecord =0;
int printRoom =0;
final String userId = dataSnapshot.child("CurrentUser").child("UserId").getValue(String.class);
for (DataSnapshot zonesnapshot : dataSnapshot.child("CurrentUser").child("Tracking").child("ListRoom").getChildren())
{
if(printRoom!=Length_Record)
{
zonesnapshot.getValue();
String[] parts = String.valueOf(zonesnapshot.getValue()).split(",");
String part1 = parts[0]; // Room Id
String part2 = parts[1]; // Room Name
String part3 = parts[2]; // TypeRoom
String OnRoom = dataSnapshot.child("CurrentUser").child("Tracking").child("Location").getValue(String.class);
itemsName.add(part2+","+part3); // put to arraylist to prepare a room choice for deletion
showitemName.add(part2+"("+part3+")");
itemOfUser.put(userId+"Room"+printRoom,part2+","+part3); // keep room for each user
inRow(dataSnapshot.child("CurrentUser").child("UserId").getValue(String.class), RunRecord, part2, OnRoom, part3);
}
printRoom++;
}
summitDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
storageReference = storage.getInstance().getReferenceFromUrl("gs://********-*****.appspot.com/imagesRoom").child(userId).child(selection);
storageReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(),"Error Can not delete file",Toast.LENGTH_SHORT).show();
}
});
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void展厅()
{
refroom.addValueEventListener(新的ValueEventListener(){
@凌驾
公共无效onDataChange(最终数据快照数据快照){
int Length_Record=dataSnapshot.child(“当前用户”).child(“跟踪”).child(“列表室”).child(“列表室长度”).getValue(int.class);
int RunRecord=0;
int打印室=0;
最终字符串userId=dataSnapshot.child(“CurrentUser”).child(“userId”).getValue(String.class);
对于(DataSnapshot区域napshot:DataSnapshot.child(“当前用户”).child(“跟踪”).child(“列表室”).getChildren())
{
if(打印室!=长度记录)
{
zonesnapshot.getValue();
String[]parts=String.valueOf(zonesnapshot.getValue()).split(“,”);
字符串part1=parts[0];//房间Id
字符串part2=parts[1];//房间名称
字符串part3=parts[2];//TypeRoom
字符串OnRoom=dataSnapshot.child(“CurrentUser”).child(“Tracking”).child(“Location”).getValue(String.class);
itemsName.add(part2+,“+part3);//放入arraylist以准备要删除的房间选项
showitemName.add(part2+“(“+part3+”));
itemOfUser.put(userId+“Room”+打印室,part2+,“+part3);//为每个用户保留空间
inRow(dataSnapshot.child(“CurrentUser”).child(“UserId”).getValue(String.class),RunRecord,第2部分,OnRoom,第3部分);
}
打印室++;
}
summitDelete.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
storageReference=storage.getInstance().getReferenceFromUrl(“gs://*********-*********.appspot.com/imagesRoom”).child(用户ID).child(选择);
storageReference.delete().addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公开作废(作废避免){
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(getApplicationContext(),“错误无法删除文件”,Toast.LENGTH\u SHORT.show();
}
});
}
});
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}
String text=mySpinner.getSelectedItem().toString();字符串Itemselected=dropdown.getItemAtPosition(i).toString()可能重复@Kim先生,请看我的答案。我尝试过这一个,但控制台显示消息endAllStagingAnimators on 0x55abf0ca00(ListPopupWindow$DropDownList视图)和handleIt从未被选中。应用程序显示消息已停止运行谢谢,我将尝试@Kim先生,好的,试试看,如果可行的话,请接受我的回答,放弃与Firebase的datasnapshot相关的虚拟展厅方法,因此ArrayList已经一直在更改。我可能对此有问题。我只是猜测一个假设。@AbhinavI已经发布了showroom();请检查一下out@Abhinavl
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
}
}
public void showRoom()
{
refroom.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
int Length_Record = dataSnapshot.child("CurrentUser").child("Tracking").child("ListRoom").child("LIST_ROOM_LENGTH").getValue(int.class);
int RunRecord =0;
int printRoom =0;
final String userId = dataSnapshot.child("CurrentUser").child("UserId").getValue(String.class);
for (DataSnapshot zonesnapshot : dataSnapshot.child("CurrentUser").child("Tracking").child("ListRoom").getChildren())
{
if(printRoom!=Length_Record)
{
zonesnapshot.getValue();
String[] parts = String.valueOf(zonesnapshot.getValue()).split(",");
String part1 = parts[0]; // Room Id
String part2 = parts[1]; // Room Name
String part3 = parts[2]; // TypeRoom
String OnRoom = dataSnapshot.child("CurrentUser").child("Tracking").child("Location").getValue(String.class);
itemsName.add(part2+","+part3); // put to arraylist to prepare a room choice for deletion
showitemName.add(part2+"("+part3+")");
itemOfUser.put(userId+"Room"+printRoom,part2+","+part3); // keep room for each user
inRow(dataSnapshot.child("CurrentUser").child("UserId").getValue(String.class), RunRecord, part2, OnRoom, part3);
}
printRoom++;
}
summitDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
storageReference = storage.getInstance().getReferenceFromUrl("gs://********-*****.appspot.com/imagesRoom").child(userId).child(selection);
storageReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(),"Error Can not delete file",Toast.LENGTH_SHORT).show();
}
});
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}