In My application i am Having Dynamic Spinners.
Totally 2 Spinners are there in a Method,Both are dependent(SPinner1 ,Spinner2).
I can call that method multiple Times.
Spinner Data Loading from Local database.
Problem:
i called that method twice So activity Shown Totally 4 Spinners.
1a.spinner1
1b.SPinner2
2a.Spinner1
2b.Spinner2
Based on 3rd Spinner what i Selected , 4th Spinner data is loading perfectly.
but based on 1st Spinner Selected item data Not showing in 2nd Spinner, because last iteration data(3rd and 4th spinner)only stored in String Array.
Please Help me to Solve this. show data in all the spinners.
My Method to create Dynamic SPinners
// Helper for inflating a row Dynamic SPINNER
private void inflateDynamic_SpinnerRow(String ObjectidTypeIdVal,final String LabelvalDynamic,String ValidationID,String SavedFormidValString
, final String FormObjectIDValue)
{
Log.i("Dynamic Spinner", LabelvalDynamic+"Form OBJECT Id"+FormObjectIDValue);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rowView123 = inflater.inflate(R.layout.rowfor_dynamic_spinner_with_label, null);
final TextView Textview_Label1 = (TextView) rowView123.findViewById(R.id.textViewa1Labelxml);
final TextView Textview_Label2 = (TextView) rowView123.findViewById(R.id.textViewa2Labelxml);
RelativeLayoutDynamic2=(RelativeLayout) rowView123.findViewById(R.id.Realtive2);
DynamicSpinner123 = (Spinner) rowView123.findViewById(R.id.DynamicSpinner1xml);
DynamicSpinner123Dependent2=(Spinner)rowView123.findViewById(R.id.DynamicSpinner2xml);
DynamicSpinnerarr= new ArrayList<String>();
DynamicSpinnerarr_IdValue= new ArrayList<String>();
// DynamicSpinnerDependdentarr= new ArrayList<String>();
if (!LabelvalDynamic.equals(""))
{
//Converting string to Array list
try
{
MobileServiceList<th_tbdynamicspinner> results09;
results09 = mToDoTable_Form_DynamicSPinner_Table88_Local_Database.read(mPullQuery12378).get();
//Offline Sync
if(!results09.isEmpty())
{
Log.i("Data Is Available ", "From Lcoal>>>>>>" + "Data DynamicSPinner");
for (int i = 0; i < results09.size(); i++)
{
Boolean mComplete_BooleanState=results09.get(i).isComplete();
Dynamic_Spinner_ID_StringVal1_TableValue3=results09.get(i).getDynamic_Spinner_Id_StringOne();
Form_Object_ID_StringVal1_TableValue3=results09.get(i).getForm_Object_Id_StringOne();
Table_Name_StringVal1_TableValue3=results09.get(i).getTable_Name_StringOne();
ID_Column_StringVal1_TableValue3=results09.get(i).getID_Column_StringOne();
Data_Column_StringVal1_TableValue3=results09.get(i).getData_Column_StringOne();
Data_Condition_StringVal1_TableValue3=results09.get(i).getData_Condition_StringOne();
Dependent_SPinner_StringVal1_TableValue3=results09.get(i).getDependent_Spinner_StringOne();
FormID_value_StringVal1_TableValue3=results09.get(i).getFormId_Val_StringOne();
Log.i("Local Database Listview", Table_Name_StringVal1_TableValue3 + ":" + Form_Object_ID_StringVal1_TableValue3);
/* DynamicSpinnerarr.add(Dependent_SPinner_StringVal1_TableValue3);
DynamicSpinnerarr_IdValue.add(ID_Column_StringVal1_TableValue3);*/
Collections.addAll(DynamicSpinnerarr,Dependent_SPinner_StringVal1_TableValue3);
Collections.addAll(DynamicSpinnerarr_IdValue,ID_Column_StringVal1_TableValue3);
if(Dependent_SPinner_StringVal1_TableValue3.equals(""))
{
Log.i("SPINN", "Spinner Data NotFound from Local");
}
else
{
Log.i("Listview ", "Dynamic Spinner Data AVAILABLE");
String Data[]=LabelvalDynamic.split(",");
Textview_Label1.setText(Data[0].toString());
Textview_Label2.setText(Data[1].toString());
arrayadpFIrstDynamic=new ArrayAdapter<String>(Form_DetailsAddPage.this,android.R.layout.simple_spinner_dropdown_item,DynamicSpinnerarr);
arrayadpFIrstDynamic.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
DynamicSpinner123.setAdapter(arrayadpFIrstDynamic);
}
}
}
else
{
Log.i("Dyanmic SPinner ", "Data NotFound in Local");
}
} catch (Exception e)
{
e.printStackTrace();;
Log.i("Local In Listview", "Exception Occur......!");
}
}
else
{
mExclusiveEmptyView = rowView123;
//deleteButton.setVisibility(View.INVISIBLE);
Textview_Label1.setText("NOt Avilable");
}
/*Item Selected in First Dynamic Spinner :-)*/
DynamicSpinner123 .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> spinner123, View view, int position, long id)
{
try
{
DynamicSpinnerDependdentarr= new ArrayList<String>();
String selectedItem = spinner123.getItemAtPosition(position).toString();
for (String member : DynamicSpinnerarr)
{
Log.i("Member name: ", member);
}
DYNAMICSPINNER_VALUE_ARRAY=new String[DynamicSpinnerarr.size()];
DYNAMICSPINNER_VALUE_ARRAY=DynamicSpinnerarr.toArray(DYNAMICSPINNER_VALUE_ARRAY);
DYNAMICSPINNER_ID_VALUE_ARRAY=new String[DynamicSpinnerarr_IdValue.size()];
DYNAMICSPINNER_ID_VALUE_ARRAY=DynamicSpinnerarr_IdValue.toArray(DYNAMICSPINNER_ID_VALUE_ARRAY);
Log.i("String Selcted",selectedItem);
Log.i(" MY ARRAY Selected :-)",Arrays.toString(DYNAMICSPINNER_VALUE_ARRAY));
/*Finding the Id related to Dynamic Spinner*/
for(int i=0;i<DYNAMICSPINNER_VALUE_ARRAY.length;i++)
{
if(selectedItem.equals(DYNAMICSPINNER_VALUE_ARRAY[i]))
{
DynamicSpinnerIdString=DYNAMICSPINNER_ID_VALUE_ARRAY[i];
Log.i("DYNAMIC ID",DynamicSpinnerIdString);
// break;
}
}
/*For Getting Spinner LocalDatabase Data*/
MobileServiceList<th_tbdynamicspinnerdependenttable> results678;
results678 = mToDoTable_Form_DynamicSPinnerDependent_Table77_Local_Database.read(mPullQuery1234).get();
//Offline Sync
if(!results678.isEmpty())
{
RelativeLayoutDynamic2.setVisibility(View.VISIBLE);
Log.i("Data Is Available ", "From Lcoal>>>>>>" + "Data SPinner");
for (int i = 0; i < results678.size(); i++)
{
Boolean mComplete_BooleanState=results678.get(i).isComplete();
DyncamicDependent_ColumnIDStringVal1_TableValue2 = results678.get(i).getId_Column_StringOne();
DynamicDependent_CITYList_VALUE_StringVal1_TableValue2 = results678.get(i).getCity_List_StringOne();
Log.i("Local Database Listview", DyncamicDependent_ColumnIDStringVal1_TableValue2 + ":" + DynamicDependent_CITYList_VALUE_StringVal1_TableValue2);
Collections.addAll(DynamicSpinnerDependdentarr, DynamicDependent_CITYList_VALUE_StringVal1_TableValue2.split(","));
if(DyncamicDependent_ColumnIDStringVal1_TableValue2.equals(""))
{
Log.i("SPINN", "Spinner Data NotFound from Local");
}
else
{
Log.i("Listview ", "Spinner Data AVAILABLE");
// TextviewLabel.setText(Labelval.toString());
arrayadp2_Dependent=new ArrayAdapter<String>(Form_DetailsAddPage.this,android.R.layout.simple_spinner_dropdown_item,DynamicSpinnerDependdentarr);
arrayadp2_Dependent.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
DynamicSpinner123Dependent2.setAdapter(arrayadp2_Dependent);
}
}
}
else
{
Log.i("DynamiceSPinner ", "Dependent Data NotFound in Local");
RelativeLayoutDynamic2.setVisibility(View.GONE);
}
} catch (Exception e)
{
e.printStackTrace();
Log.i("","Spinner Error OnItemSelectedClick");
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
DynamicSpinner123.setId(viewsCount++);
allViews.add(DynamicSpinner123);
allValidation_arr.add(ValidationID);
allObjectid_arr.add(ObjectidTypeIdVal);
allSavedformid_arr.add(SavedFormidValString);
allformObject_id_arr.add(FormObjectIDValue);
DynamicSpinner123Dependent2.setId(viewsCount++);
allViews.add(DynamicSpinner123Dependent2);
allValidation_arr.add(ValidationID);
allObjectid_arr.add(ObjectidTypeIdVal);
allSavedformid_arr.add(SavedFormidValString);
allformObject_id_arr.add(FormObjectIDValue);
// Inflate at the end of all rows
mContainerView.addView(rowView123);
}