在我的应用程序中,我有动态微调器。
一个方法中总共有 2 个 Spinner,它们都是依赖的(SPinner1,Spinner2)。
我可以多次调用该方法。
从本地数据库加载微调器数据。
问题:
我两次调用了该方法,所以活动总共显示了 4 个 Spinners。
1a.spinner1
1b.SPinner2
2a.Spinner1
2b.Spinner2
基于我选择的 3rd Spinner ,4th Spinner 数据正在完美加载。
但基于1st Spinner Selected item data 未显示在 2nd Spinner 中,因为最后一次迭代数据(3rd 和 4th spinner)仅存储在 String Array中。
请帮我解决这个问题。显示所有微调器中的数据。
我创建动态旋转器的方法
// 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);
}