我是Android应用程序的初学者。 我需要帮助 我在过去4天这样做了
如果我选择孟买,第二个微调器应该显示受尊重的pickup_point_cd(显示4值而非机场值:D)
公共类MainActivity扩展AppCompatActivity实现Spinner.OnItemSelectedListener {
//Declaring an Spinner
public Spinner spinner;
public Spinner spinner1;
//An ArrayList for Spinner Items
public ArrayList<String> students;
public ArrayList<String> students1;
//JSON Array
public JSONArray result;
public JSONArray result1;
//TextViews to display details
private TextView textViewName;
private TextView textViewCourse;
private TextView textViewSession;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initializing the ArrayList
students = new ArrayList<String>();
students1 = new ArrayList<String>();
//Initializing Spinner
spinner = (Spinner) findViewById(R.id.spinner);
spinner1 = (Spinner) findViewById(R.id.spinner2);
//Adding an Item Selected Listener to our Spinner
//As we have implemented the class Spinner.OnItemSelectedListener to this class iteself we are passing this to setOnItemSelectedListener
spinner.setOnItemSelectedListener(this);
spinner1.setOnItemSelectedListener(this);
//Initializing TextViews
textViewName = (TextView) findViewById(R.id.textViewName);
textViewCourse = (TextView) findViewById(R.id.textViewCourse);
textViewSession = (TextView) findViewById(R.id.textViewSession);
//This method will fetch the data from the URL
getData();
getData1();
}
public void getData(){
//Creating a string request
StringRequest stringRequest = new StringRequest(Config.DATA_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONObject j = null;
try {
//Parsing the fetched Json String to JSON Object
j = new JSONObject(response);
//Storing the Array of JSON String to our JSON Array
result = j.getJSONArray(Config.JSON_ARRAY);
//Calling method getStudents to get the students from the JSON Array
getStudents(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
//Creating a request queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Adding request to the queue
requestQueue.add(stringRequest);
}
public void getStudents(JSONArray j) {
//Traversing through all the items in the json array
for (int i = 0; i < j.length(); i++) {
try {
//Getting json object
JSONObject json = j.getJSONObject(i);
//Adding the name of the student to array list
students.add(json.getString(Config.TAG_USERNAME));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
public void getData1() {
//Creating a string request
StringRequest stringRequest = new StringRequest(Config.DATA2_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONObject j = null;
try {
//Parsing the fetched Json String to JSON Object
j = new JSONObject(response);
//Storing the Array of JSON String to our JSON Array
result1 = j.getJSONArray(Config.JSON_ARRAY2);
//Calling method getStudents to get the students from the JSON Array
getStudents1(result1);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
//Creating a request queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Adding request to the queue
requestQueue.add(stringRequest);
}
public void getStudents1(JSONArray j) {
//Traversing through all the items in the json array
for (int i = 0; i < j.length(); i++) {
try {
//Getting json object
JSONObject json = j.getJSONObject(i);
//Adding the name of the student to array list
students1.add(json.getString(Config.TAG_CD));
} catch (JSONException e) {
e.printStackTrace();
}
}
//Setting adapter to show the items in the spinner
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students));
spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students1));
}
答案 0 :(得分:0)
首先,您必须制作Web服务或web api,以便从MySQL获取Android应用程序中的微调器所需的数据。之后,您可以通过Web服务获取数据。为2个差异微调器数据制作2个不同的Web服务。供参考,您可以使用本教程.... enter link description here
如果您执行这些操作,我将为您提供有关如何在第一个微调器的选择值上设置第二个微调器数据的代码。 这是代码.....
Remove this lines first..
//Setting adapter to show the items in the spinner
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students));
spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students1));
并在getData()方法
之后添加这些代码行ArrayList<String> cityList_final = new ArrayList<String>();
cityList_final .add("Select Item");
cityList_final .addAll(students);
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, cityList_final ));
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int pos, long arg3) {
spinnerSelectedItem= spinner.getItemAtPosition(pos).toString();
if(spinnerSelectedItem.equalsIgnoreCase("Select Item")==false) {
// call here your getData1 method and pass spinnerSelectedItem in url to fetch data according to spinnerSelectedItem.//donot call getData1 method in onCreate
getData1(spinnerSelectedItem);
}
setSecondSpinner();
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
public void setSecondSpinner()
{
ArrayList<String> pickPointList_final = new ArrayList<String>();
pickPointList_final .add("Select Item");
pickPointList_final .addAll(students1);
spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, pickPointList_final));
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
spinnerSelectedItem1= spinner1.getItemAtPosition(arg2).toString();
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
希望这会对你有帮助.....