Hallo Ich würde eine TextView in meiner Aktivität nach Klicken auf Speichern im Dialogfeld festlegen. Ich werde es erklären. In meiner Tätigkeit habe ich ein Listview:Ändern Sie TextView in ListView, wenn Sie auf Speichern klicken
<ListView
android:id="@+id/activityList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp" />
Und ich habe eine "Reihe" Layout für diese Listview:
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:padding="8dp"
/>
<TextView
android:id="@+id/hours"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:padding="8dp"
/>
Wenn ich auf List Item klicken, I-Dialog öffnen und geben Daten an Dialog :
private void createListActivities(){
AdapterJsonArray adapterActivities = new AdapterJsonArray(ReceiptsActivity.this, datas);
ListView listView = (ListView)findViewById(R.id.activityList);
assert listView != null;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
try {
JSONObject data = datas.getJSONObject(position);
openDialogReceipt(data);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
listView.setAdapter(adapterActivities);
}
private void openDialogReceipt(final JSONObject activity) throws JSONException {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Activity.this);
LayoutInflater inflater = Activity.this.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.dialog_receipt_activity, null);
alertDialog.setView(dialogView);
alertDialog.setTitle("Time");
alertDialog.setMessage(activity.getString("property"));
alertDialog.setPositiveButton("Save", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
try {
/** get Text hour */
EditText hour = (EditText)dialogView.findViewById(R.id.hourUser);
assert hour != null;
// in this point I have to pass data to activity Item clicked in ListView
} catch (JSONException e) {
e.printStackTrace();
}
}
});
alertDialog.setNegativeButton("Cancella", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//pass
}
});
AlertDialog b = alertDialog.create();
b.show();
}
Wenn ich meinen Dialog zu öffnen habe ich eine editText:
<EditText
android:id="@+id/hourUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal" />
EDIT
In meinem AdapterJsonArray die BaseAdapter erweitert:
public class AdapterJsonArray extends BaseAdapter implements ListAdapter {
private final Activity activity;
private final JSONArray jsonArray;
public AdapterJsonArray(Activity activity, JSONArray jsonArray) {
assert activity != null;
assert jsonArray != null;
this.jsonArray = jsonArray;
this.activity = activity;
}
@Override
public int getCount() {
return jsonArray.length();
}
@Override public JSONObject getItem(int position) {
return jsonArray.optJSONObject(position);
}
@Override
public long getItemId(int position) {
JSONObject jsonObject = getItem(position);
return jsonObject.optLong("id");
}
@Override public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v;
if (convertView == null) {
v = inflater.inflate(R.layout.list_view_activities, null);
} else {
v = convertView;
}
TextView description = (TextView) v.findViewById(R.id.text);
try {
description.setText(jsonArray.getJSONObject(position).getString("property"));
} catch (JSONException e) {
e.printStackTrace();
}
// questionable logic
return v;
}
}
Aber wie kann ich Element Listview "ausgewählt" und setzen Textview Stunden mit EditText im Dialog zusammengestellt eingestellt?
können Sie den Inhalt der AdapterJsonArray-Klasse anzeigen? – Andolasoft
Ja sorry, ich werde bearbeiten – LorenzoBerti