Aşağıdaki kodda web ..... gelen XML değerlerinden değerler getiriyorum kodları doğru değerleri alıyorum ama KEY çevirmek spinneer1 geçmek mümkün değilim ve döndürücü1 değiştirildiğinde, eğiricide2 ilgili DEĞERLER buna göre değiştirilecektir. LogCat olarakNasıl spinmer1 ve spinner1 android için karşılık gelen DEĞERLER tohma2 KEY nasıl geçmek için
Ben Jackfruit spinner1 seçilmişse,
{
Jackfruit=[Cabbage, Kesar, Amond],
Date=[van, hall, Brinjal],
Brinjal=[Cabbage, Kesar, Amond]
}
Yani iplikçiler hem geçmek zorunda böyle değerleri alıyorum sonra- Lahana, Kesar, Amond gerektiği spinner2
yılında diplay ben UPDATE-3 MainActivity.java
ait aşağıda koddan alıyorum yukarıdaki logcatNodeList nodeList = doc.getElementsByTagName("a:AAAAA");
for (int i = 0; i < nodeList.getLength(); i++) {
Element el = (Element) nodeList.item(i);
String awValue = el.getElementsByTagName("a:W").item(0).getTextContent();
if (!values.containsKey(awValue)) {
values.put(awValue, new ArrayList<String>());
}
String arValue = el.getElementsByTagName("a:R").item(0).getTextContent();
values.get(awValue).add(arValue);
}
Log.d("ADebugTag", "Value: " + values);
Ve MainActivity.java bütün kod eğiren tıklamada spinner2 bir tane spinner1 anahtarın değerini ve ilgili DEĞERLERİ geçmesine nasıl
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener, OnClickListener {
ArrayList<String> title;
ArrayList<String> title2;
Button button;
Spinner spinner;
Spinner spinner2;
private EditText fromDateEtxt;
//private EditText toDateEtxt;
private DatePickerDialog fromDatePickerDialog;
//private DatePickerDialog toDatePickerDialog;
private SimpleDateFormat dateFormatter;
ArrayAdapter<String> from_adapter;
ArrayAdapter<String> from_adapter2;
Map<String, List<String>> values = new HashMap<String, List<String>>();
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
title = new ArrayList<String>();
title2 = new ArrayList<String>();
button = (Button) findViewById(R.id.button1);
spinner = (Spinner) findViewById(R.id.spinner1);
spinner.setOnItemSelectedListener(this);
spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner2.setOnItemSelectedListener(this);
findViewsById();
setDateTimeField();
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
parse();
from_adapter=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item, title);
from_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
from_adapter2=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item, title2);
from_adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(from_adapter);
spinner2.setAdapter(from_adapter2);
}
private Object from_adapter(int i) {
// TODO Auto-generated method stub
return null;
}
});
}
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
Toast.makeText(parent.getContext(), ""+spinner.getSelectedItem().toString().trim(),
Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
}
protected void parse() {
// TODO Auto-generated method stub
try {
URL url = new URL(
"WEB URL");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("a:AAAA");
for (int i = 0; i < nodeList.getLength(); i++) {
Element el = (Element) nodeList.item(i);
// get the a:W value
String awValue = el.getElementsByTagName("a:W").item(0).getTextContent();
// add the above value in our map as key if it isn't present in the map, this key will
// have a list associated with it in which ALL the values for a:R will be stored, if
// the awValue key is present then you just add the new a:R value to its list
if (!values.containsKey(awValue)) {
values.put(awValue, new ArrayList<String>());
}
// also add the value pointed by a:R to the list associated with a:W
String arValue = el.getElementsByTagName("a:R").item(0).getTextContent();
values.get(awValue).add(arValue);
Log.d("ADebugTag", "Value: " + arValue);
}
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("a:W");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
NodeList websiteList = fstElmnt.getElementsByTagName("a:R");
Element websiteElement = (Element) websiteList.item(0);
websiteList = websiteElement.getChildNodes();
title.add(((Node) nameList.item(0)).getNodeValue());
}
NodeList nodeList2 = doc.getElementsByTagName("a:AAAA");
for (int i = 0; i < nodeList2.getLength(); i++) {
Node node = nodeList2.item(i);
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("a:R");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
title2.add(((Node) nameList.item(0)).getNodeValue());
}
Set<String> set = new LinkedHashSet<String>(title);
title = new ArrayList<String>(set);
// Collection<String> set = new LinkedHashSet<String>(months);
Set<String> set2 = new LinkedHashSet<String>(title2);
title2 = new ArrayList<String>(set2);
System.out.println("list are");
System.out.println(set);
System.out.println("list 2 are");
System.out.println(set2);
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
}
olduğunu
Değişiklikler-1
Aşağıdaki kod itibareni Jackfruit sonra Lahana, Kesar, Amond
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
String lang_Name = parent.getItemAtPosition(pos).toString();
List<String> lang_Key = values.get(lang_Name);
Toast.makeText(parent.getContext(), ""+lang_Key,
Toast.LENGTH_LONG).show();
}
doğru tost seçilirse onun yazışma değerinin doğru yani tost ardından spinner1 değerini değiştirirseniz ve istediğim Spinner2 'ye, spinner1'e bağlı olarak dinamik olarak geçecek tost değerleri.
.. .Lütfen Changes-1 kodunda –
yaa'yı görüyorsunuz, ancak uygulamayı ilk başlattığımda diğer tüm değerleri de gösterdiğimde fakat spinner1'i değiştirdiğimde seçili doğru listeleri gösterir, yani ilk gösterimde tüm varsayılan değerleri gösterir –
onCreate Bağdaştırıcıyı döndürücüde ayarlamadan önce (spinner2.setAdapter (from_adapter2);), bağdaştırıcıyı boşaltın. from_adapter2.clear(); – Ricardo