选择时使用 retrofit2 获得的项目不会显示在微调器中
Items obtained using retrofit2 when selected, is not shown in the spinner
项目最初不显示在微调器上too.When点击微调器我们可以看到它被填充并且从网络获取数据api(json数组)使用 retrofit2 shown.The 所选项目既未显示在微调器上也未设置为编辑文本。
代码:
public class BranchsActivity extends AppCompatActivity {
Button br_add;
String brName,brShortName;
EditText et_BrName,et_BrShName;
Spinner spinner_Branch;
List<BranchResponse> branch;
Integer brId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_branchs);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
br_add = (Button)findViewById(R.id.bt_bradd);
et_BrName = (EditText)findViewById(R.id.editTextBrName);
et_BrShName = (EditText)findViewById(R.id.editTextBrShName);
spinner_Branch = (Spinner)findViewById(R.id.spinner_br);
final ArrayList<String> brList = new ArrayList<>();
Callback <List<BranchResponse>> callback = new Callback<List<BranchResponse>>() {
@Override
public void onResponse(Response<List<BranchResponse>> response, Retrofit retrofit) {
if (response.isSuccess()) {
branch = response.body();
brList.clear();
for(int i=0;i<branch.size();i++){
brName= branch.get(i).getBrName();
brShortName = branch.get(i).getBrShortName();
brId = branch.get(i).getBranchId();
brList.add(brName);
}
brList.add(0,"Select a Branch");
Toast.makeText(getApplicationContext(), "Successful!", Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(), response.raw().message().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable t) {
Toast.makeText(getApplicationContext(), "failure!", Toast.LENGTH_SHORT).show();
}
};
ApiManager.getApi().getService().getBranch().enqueue(callback);
spinner_Branch.setAdapter(new ArrayAdapter<String>(BranchsActivity.this,android.R.layout.simple_spinner_dropdown_item, brList));
spinner_Branch.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?>parent,View view,int position,long id){
//This toast is also not shown when the item is selected
Toast.makeText(getApplicationContext(), "item selected!", Toast.LENGTH_SHORT).show();
et_BrName.setText(branch.get(position).getBrName());
et_BrShName.setText(branch.get(position).getBrShortName());
Toast.makeText(parent.getContext(),
"On Item Select : \n" + parent.getItemAtPosition(position-1).toString(),
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?>arg0){
}
});
}
我浏览了几乎所有处理微调器问题的帖子并尝试了所有建议的答案,但 none 解决了这个问题。
ArrayAdapter<String> mAdapter;
mAdapter = new ArrayAdapter<String>(BranchsActivity.this,android.R.layout.simple_spinner_dropdown_item, brList);
spinner_Branch.setAdapter(mAdapter);
Callback <List<BranchResponse>> callback = new Callback<List<BranchResponse>>() {
@Override
public void onResponse(Response<List<BranchResponse>> response, Retrofit retrofit) {
if (response.isSuccess()) {
branch = response.body();
brList.clear();
for(int i=0;i<branch.size();i++){
brName= branch.get(i).getBrName();
brShortName = branch.get(i).getBrShortName();
brId = branch.get(i).getBranchId();
brList.add(brName);
}
brList.add(0,"Select a Branch");
mAdapter.notifydatasetchanged();
Toast.makeText(getApplicationContext(), "Successful!", Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(), response.raw().message().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable t) {
Toast.makeText(getApplicationContext(), "failure!", Toast.LENGTH_SHORT).show();
}
};
ApiManager.getApi().getService().getBranch().enqueue(callback);
项目最初不显示在微调器上too.When点击微调器我们可以看到它被填充并且从网络获取数据api(json数组)使用 retrofit2 shown.The 所选项目既未显示在微调器上也未设置为编辑文本。
代码:
public class BranchsActivity extends AppCompatActivity {
Button br_add;
String brName,brShortName;
EditText et_BrName,et_BrShName;
Spinner spinner_Branch;
List<BranchResponse> branch;
Integer brId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_branchs);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
br_add = (Button)findViewById(R.id.bt_bradd);
et_BrName = (EditText)findViewById(R.id.editTextBrName);
et_BrShName = (EditText)findViewById(R.id.editTextBrShName);
spinner_Branch = (Spinner)findViewById(R.id.spinner_br);
final ArrayList<String> brList = new ArrayList<>();
Callback <List<BranchResponse>> callback = new Callback<List<BranchResponse>>() {
@Override
public void onResponse(Response<List<BranchResponse>> response, Retrofit retrofit) {
if (response.isSuccess()) {
branch = response.body();
brList.clear();
for(int i=0;i<branch.size();i++){
brName= branch.get(i).getBrName();
brShortName = branch.get(i).getBrShortName();
brId = branch.get(i).getBranchId();
brList.add(brName);
}
brList.add(0,"Select a Branch");
Toast.makeText(getApplicationContext(), "Successful!", Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(), response.raw().message().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable t) {
Toast.makeText(getApplicationContext(), "failure!", Toast.LENGTH_SHORT).show();
}
};
ApiManager.getApi().getService().getBranch().enqueue(callback);
spinner_Branch.setAdapter(new ArrayAdapter<String>(BranchsActivity.this,android.R.layout.simple_spinner_dropdown_item, brList));
spinner_Branch.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?>parent,View view,int position,long id){
//This toast is also not shown when the item is selected
Toast.makeText(getApplicationContext(), "item selected!", Toast.LENGTH_SHORT).show();
et_BrName.setText(branch.get(position).getBrName());
et_BrShName.setText(branch.get(position).getBrShortName());
Toast.makeText(parent.getContext(),
"On Item Select : \n" + parent.getItemAtPosition(position-1).toString(),
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?>arg0){
}
});
}
我浏览了几乎所有处理微调器问题的帖子并尝试了所有建议的答案,但 none 解决了这个问题。
ArrayAdapter<String> mAdapter;
mAdapter = new ArrayAdapter<String>(BranchsActivity.this,android.R.layout.simple_spinner_dropdown_item, brList);
spinner_Branch.setAdapter(mAdapter);
Callback <List<BranchResponse>> callback = new Callback<List<BranchResponse>>() {
@Override
public void onResponse(Response<List<BranchResponse>> response, Retrofit retrofit) {
if (response.isSuccess()) {
branch = response.body();
brList.clear();
for(int i=0;i<branch.size();i++){
brName= branch.get(i).getBrName();
brShortName = branch.get(i).getBrShortName();
brId = branch.get(i).getBranchId();
brList.add(brName);
}
brList.add(0,"Select a Branch");
mAdapter.notifydatasetchanged();
Toast.makeText(getApplicationContext(), "Successful!", Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(), response.raw().message().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable t) {
Toast.makeText(getApplicationContext(), "failure!", Toast.LENGTH_SHORT).show();
}
};
ApiManager.getApi().getService().getBranch().enqueue(callback);