У меня есть действие, которое содержит кнопку отправки и несколько списков списка, которые я заполняю строковым массивом, этот массив существует как на английском, так и на французском.Как сохранить идентификатор выбора из списка view
strings.xml
<string-array name="trucks">
<item name="truck1">Mini-van</item>
<item name="truck2">Pick-up</item>
<item name="truck3">4 x 4</item>
</string-array>
strings_fr.xml
<string-array name="trucks">
<item name="truck1">Mini-van french</item>
<item name="truck2">Pick-up french</item>
<item name="truck3">4 x 4 french</item>
</string-array>
После того как пользователь выбирает, какой-либо вещи он/она хочет, чтобы они попали в кнопку, чтобы сохранить выбранные параметры (локально в массив). Я могу получить строковое содержимое выбранных элементов, но если бы я их сохранил, это сохранит языковые значения. мне нужно имя или какой-то идентификатор (truck1, truck2) для сохранения, чтобы при следующем загрузке списка я мог прагматично проверять сохраненные элементы списка независимо от языка, а также отправлять идентификаторы транспортного средства на сервер когда приходит время для постоянного сохранения данных.
Ниже то, что я до сих пор ..
activity_truck_picker.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btn_truck_done"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/themedButton"
android:layout_alignParentBottom="true"
android:text="Add Truck(s)" />
<ListView
android:id="@+id/lst_trucks"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/btn_truck_done"
android:layout_alignParentTop="true"
/>
</RelativeLayout>
TruckPickerActivity.java
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
public class TruckPickerActivity extends Activity implements
View.OnClickListener {
private static final String TAG = "Presite";
Button button;
ListView listView;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_truck_picker);
listView = (ListView) findViewById(R.id.lst_trucks);
button = (Button) findViewById(R.id.btn_truck_done);
String[] trucks = getResources().getStringArray(R.array.trucks);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, trucks);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);
button.setOnClickListener(this);
}
public void onClick(View v) {
SparseBooleanArray checked = listView.getCheckedItemPositions();
ArrayList<String> selectedItems = new ArrayList<String>();
for (int i = 0; i < checked.size(); i++) {
int position = checked.keyAt(i);
if (checked.valueAt(i))
selectedItems.add(adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i);
Log.i(TAG, "Truck Selected: " + selectedItems.get(i));
String itemName = ...; // Some how look up name of string in array for storing in database
}
}
}
Я не могу понять способ, чтобы получить имена/идентификатор выбранные параметры для сохранения. Любая помощь будет оценена по достоинству.
Кажется, глупо иметь другой массив, чтобы сделать что-то подобное, но он работает, спасибо , – Justin