gpt4 book ai didi

android - 测试用户是否从 AutoCompleteTextView 中选择了一个项目

转载 作者:行者123 更新时间:2023-11-30 01:30:01 24 4
gpt4 key购买 nike

我的问题是,每当用户从 AutoCompleteTextView 中选择一个项目时,我的代码不会做出相应的 react 。
flag 是一个变量,每当从每个 AutoCompleteTextView 中选择一个项目时,它就会被设置为一个值。如果它设置为 1,则表示它是正确的,应该继续进行主要 Activity 。否则,在点击 onClick 调用方法 callMainActivity 的按钮时显示 toast。
没有错误。 Gradle 构建成功,但是点击那个按钮(上面提到的)根本没有任何反应。
代码:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.Arrays;
import java.util.List;

public class Location extends AppCompatActivity {
private static int flag=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location);
int city = android.R.layout.simple_dropdown_item_1line;
int area = android.R.layout.simple_dropdown_item_1line;
int store = android.R.layout.simple_dropdown_item_1line;

String []city_array = getResources().getStringArray(R.array.City);
String []area_array= getResources().getStringArray(R.array.Area);
String []store_array= getResources().getStringArray(R.array.Store);

List<String> city_list= Arrays.asList(city_array);
List<String> area_list= Arrays.asList(area_array);
List<String> store_list= Arrays.asList(store_array);

ArrayAdapter<String> adapter_city = new ArrayAdapter(this,city, city_list);
ArrayAdapter<String> adapter_area = new ArrayAdapter(this, area, area_list);
ArrayAdapter<String> adapter_store = new ArrayAdapter(this, store, store_list);

final AutoCompleteTextView autocompleteView_city =
(AutoCompleteTextView) findViewById(R.id.City);
final AutoCompleteTextView autocompleteView_area =
(AutoCompleteTextView) findViewById(R.id.Area);
final AutoCompleteTextView autocompleteView_store =
(AutoCompleteTextView) findViewById(R.id.Store);

autocompleteView_area.setAdapter(adapter_area);
autocompleteView_city.setAdapter(adapter_city);
autocompleteView_store.setAdapter(adapter_store);
autocompleteView_area.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View arg0) {
autocompleteView_area.showDropDown();
if(autocompleteView_area.getListSelection()!= ListView.INVALID_POSITION)
flag=1;
else
flag=0;

}
});
autocompleteView_city.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View arg0) {
autocompleteView_city.showDropDown();
if(autocompleteView_area.getListSelection()!= ListView.INVALID_POSITION)
flag=1;
else
flag=0;
}
});
autocompleteView_store.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View arg0) {
autocompleteView_store.showDropDown();
if(autocompleteView_area.getListSelection()!= ListView.INVALID_POSITION)
flag=1;
else
flag=0;
}
});

//这是最新更新的部分

           autocompleteView_area.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
//... your stuff
if(autocompleteView_area.getListSelection()>0) {
flag = 1;
System.out.println(flag + "flag at area");
}else
flag=0;


}
});

}

public void callMainActivity(View view){
if(flag==1) {
Intent in = new Intent(getBaseContext(), MainActivity.class);
startActivity(in);
}
else
Toast.makeText(getBaseContext(),"Please select all fields properly",Toast.LENGTH_LONG);
}

最佳答案

您没有看到 Toast 或更改 Activity 的原因是因为您从未在代码中调用 callMainActivity(View view)。将此行添加到所有 OnClickListeners 的末尾:callMainActivity(arg0) - 如果这不起作用,请在您的 OnClickListeners 中添加一些日志语句> 检查它们是否触发。

此外,如果您希望在从您的 AutoCompleteTextView 结果列表中选择一个项目时触发调用,您应该使用 AdapterView.OnItemClickedListener反而。当从 AutoCompleteTextView 列表中选择一个项目时,或者没有选择任何项目时,这将通知您,然后您可以做出相应的 react 。

关于android - 测试用户是否从 AutoCompleteTextView 中选择了一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com