Ich zeige eine Liste von Elementen auf der Aktivität und ich benutze ein ArrayAdapter, so dass ich nur eine TextView/EditText in meinem XML haben kann. Aber ich möchte in der Lage sein, den Text zu bearbeiten und irgendwie zu speichern. Gerade jetzt ... Ich kann nur bearbeiten, aber da ich keine Tasten habe, kann ich den Inhalt nicht speichern. Kann ich eine Zeile aus der Liste als nicht editierbar, aber anklickbar festlegen? Um die Aktion einer Schaltfläche zu simulieren?Machen Sie eine EditText Zeile anklickbar und nicht editierbar Android
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_edit_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#035E7B"
/>
Etwas wie:
Row1Editable
Row2Editable
Row3Editable
Clickhere Ihre Änderungen speichern
public class SingleListItem extends ListActivity {
SweetsXmlController controller;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_list_item);
controller = new SweetsXmlController();
Intent intent = getIntent();
int position = intent.getIntExtra("position", 1);
String[] mTestArray = getResources().getStringArray(R.array.sections);
Sweet toShow = controller.getSweetByPosition(position, mTestArray);
ArrayList<String> res = new ArrayList<>();
res.add(toShow.getName());
res.add("$" + toShow.getPrice());
res.add(toShow.getDescription());
res.add(toShow.getCalories() + "kcal");res.add("Click here to save your changes!");
EditText editText = (EditText) findViewById(R.id.my_edit_text);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
Log.d("HAAAAAAAAAAAAH", "Trying to MOVE TO NEXT ITEM ");
}
@Override
public void afterTextChanged(Editable editable) {
}
});
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(
this,
R.layout.activity_single_list_item,
res);
setListAdapter(adapter);
}
Sie können sie nicht trennen, da ich mich lieber nicht mit einem benutzerdefinierten Adapter verkomplizieren möchte. – Mocktheduck
Wenn Sie bestimmten Mitgliedern eines Listenansichts benutzerdefiniertes Verhalten hinzufügen möchten, benötigen Sie einen benutzerdefinierten Adapter. – rhari