gpt4 book ai didi

android - 在 Android Activity 中添加多个动态微调器 View ,而不是在第二个微调器中加载选定的微调器数据

转载 作者:行者123 更新时间:2023-11-29 01:19:42 25 4
gpt4 key购买 nike

  1. 在我的应用程序中,我有 Dynamic Spinners。

  2. 一个Method中总共有2个Spinner,两者都是依赖的(SPinner1,Spinner2)。

  3. 我可以多次调用该方法。

  4. 从本地数据库加载 Spinner 数据。

问题:

我调用了该方法两次,所以 Activity 总共显示了 4 个 Spinners。

       1a.spinner1
1b.SPinner2

2a.Spinner1
2b.Spinner2

基于我选择的第 3 个 Spinner,第 4 个 Spinner 数据正在完美加载。

但基于第一个微调器选择的项目数据未显示在第二个微调器中,因为最后一次迭代数据(第三个和第四个微调器)仅存储在字符串数组中

请帮我解决这个问题。在所有微调器中显示数据。

我创建动态 SPinner 的方法

// 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);

}

最佳答案

public class DynamicSpiner extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

//main spinner data
String firstSpinnerArray[] = new String[]{"One", "Two", "Three", "Four"};
//dependent spinner data in arrays
List<String[]> dependentDataList = new ArrayList<>();

//initialize main adapter and dependent adapter
ArrayAdapter<String> adapter, adapterDependent;
//initialize main Spinner and dependent Spinner
Spinner spinner, spinnerDependent;
//creating map for dependent Spinner to load the data according to its parent spinner
HashMap<Integer, Spinner> hashMap = new HashMap<Integer,Spinner>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dynamic_spiner);
//add data in List for dependentSpinner data
dependentDataList.add(new String[]{"One-1", "One-2", "One-3", "One-4"});
dependentDataList.add(new String[]{"Two-1", "Two-2", "Two-3", "Two-4"});
dependentDataList.add(new String[]{"Three-1", "Three-2", "Three-3", "Three-4"});
dependentDataList.add(new String[]{"Four-1", "Four-2", "Four-3", "Four-4"});

adapter = new ArrayAdapter<String>(DynamicSpiner.this, android.R.layout.simple_list_item_1);
adapterDependent = new ArrayAdapter<String>(DynamicSpiner.this, android.R.layout.simple_list_item_1);


for (int i=0; i<firstSpinnerArray.length; i++){
spinner = new Spinner(DynamicSpiner.this);
spinnerDependent = new Spinner(DynamicSpiner.this);
spinner.setId(i);
spinnerDependent.setId(i);
hashMap.put(i, spinnerDependent);
spinner.setOnItemSelectedListener(this);
adapter.add(firstSpinnerArray[i]);
}
spinner.setAdapter(adapter);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String getDependentArray[] = dependentDataList.get(position);
for(String string : getDependentArray){
adapterDependent.add(string);
}
int spinnerId = view.getId();
if(spinnerId == position){
Spinner getSpinnerDependent = hashMap.get(position);
getSpinnerDependent.setAdapter(adapterDependent);
}
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}

我还没有测试过这个。希望对你有帮助。

关于android - 在 Android Activity 中添加多个动态微调器 View ,而不是在第二个微调器中加载选定的微调器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com