In meinem Code unten verwende ich eine ListView und einen Custom Array-Adapter, um eine Liste zu erstellen, die Besprechungen speichert (Beteiligte Personen, Beschreibung, Datum und Uhrzeit). Ich habe auf den Stack-Überlauf geschaut und bin auf gemeinsame Vorlieben gestoßen. Ich weiß allerdings nicht, wie ich es benutzen soll. Jede Hilfe wird sehr geschätzt.Ich möchte meine Daten mit gemeinsamen Einstellungen speichern, wenn möglich
public class MainActivity extends AppCompatActivity {
ArrayList<SearchResults> searchResults;
private FloatingActionButton add;
private FloatingActionButton clear;
ArrayList<SearchResults> results = new ArrayList<SearchResults>();
final Context context = this;
String time1, people1, description1, mDate, hour, minute, MeridiemIndicator, dateNumber;
int Year, Month, Day, Hour, Minute;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
searchResults = new ArrayList<SearchResults>();
setContentView(R.layout.activity_main);
final ListView lv1 = (ListView) findViewById(R.id.ListView);
final CustomAdapter myAdapter = new CustomAdapter(context, R.layout.custom_row_view, results);
lv1.setAdapter(myAdapter);
add = (FloatingActionButton) findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
dialogMethod(lv1);
}
});
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CustomAdapter adapter = (CustomAdapter) parent.getAdapter();
adapter.remove(results.get(position));
adapter.notifyDataSetChanged();
}
});
lv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long l) {
CustomAdapter adapter = (CustomAdapter) parent.getAdapter();
adapter.remove(results.get(position));
adapter.notifyDataSetChanged();
dialogMethod(lv1);
return true;
}
});
clear = (FloatingActionButton) findViewById(R.id.clear);
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
results.clear();
CustomAdapter myAdapter = new CustomAdapter(context, R.layout.custom_row_view, results);
lv1.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();
}
});
}
public void dialogMethod(final ListView lv1) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.activity_add_meeting);
dialog.setTitle("Meeting");
//ingredient.getText().toString();
final EditText people = (EditText) dialog.findViewById(R.id.people);
if (people.getText().toString().length() == 0)
people.setError("Required");
final EditText description = (EditText) dialog.findViewById(R.id.description);
if (description.getText().toString().length() == 0)
description.setError("Required");
FloatingActionButton save = (FloatingActionButton) dialog.findViewById(R.id.save);
// if button is clicked, close the custom ingredient_dialog
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePicker cal = (DatePicker) dialog.findViewById(R.id.calendar);
Year = cal.getYear();
Month = cal.getMonth();
Day = cal.getDayOfMonth();
Month = Month + 1;
TimePicker time = (TimePicker) dialog.findViewById(R.id.clock);
Hour = time.getHour();
Minute = time.getMinute();
dialog.dismiss();
time1 = hour + ":" + minute + MeridiemIndicator;
people1 = people.getText().toString();
description1 = description.getText().toString();
mDate = Year + "/" + Month + "/" + Day;
dateNumber = Year + "";
if (Month < 10) {
dateNumber += "0" + Month;
} else {
dateNumber += Month;
}
if (Day < 10) {
dateNumber += "0" + Day;
} else {
dateNumber += Day;
}
ArrayList<SearchResults> searchResults = GetSearchResults();
lv1.setAdapter(new CustomAdapter(MainActivity.this, R.layout.custom_row_view, searchResults));
}
});
dialog.show();
}
private ArrayList<SearchResults> GetSearchResults() {
SearchResults sr1 = new SearchResults();
sr1.setName(" Meeting With: " + people1);
sr1.setTimeOfMeeting(" Starts At: " + time1);
sr1.setDescription(" Details: " + description1);
sr1.setDate(" Date: " + mDate);
sr1.setDateNumber(dateNumber);
results.add(sr1);
Collections.sort(results, new Comparator<SearchResults>() {
public int compare(SearchResults x, SearchResults y) {
return Integer.parseInt(x.getDateNumber()) - Integer.parseInt(y.getDateNumber());
}
});
return results;
}
}
Auch hier ist meine Gewohnheit Adapter Code
public class CustomAdapter extends ArrayAdapter {
private static ArrayList<SearchResults> searchArrayList;
private LayoutInflater mInflater;
public CustomAdapter(Context context, int custom_row_view, ArrayList<SearchResults> results) {
super(context,custom_row_view,results);
searchArrayList = results;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return searchArrayList.size();
}
public Object getItem(int position) {
return searchArrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.name);
holder.txtTimeOfMeeting = (TextView) convertView.findViewById(R.id.timeOfMeeting);
holder.txtDescription = (TextView) convertView.findViewById(R.id.description);
holder.txtDate = (TextView) convertView.findViewById(R.id.date);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(searchArrayList.get(position).getName());
holder.txtTimeOfMeeting.setText(searchArrayList.get(position).getTimeOfMeeting());
holder.txtDescription.setText(searchArrayList.get(position).getDescription());
holder.txtDate.setText(searchArrayList.get(position).getDate());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtTimeOfMeeting;
TextView txtDescription;
TextView txtDate;
}
}
Duplizieren von [how-to-save-Daten-using-shared-preferences] (http://stackoverflow.com/questions/6015197/how-to-save-data-using-shared-preferences) –
Sie besser sollte eine Datenbank verwenden, da Sie eine Liste speichern müssen, werden die gemeinsamen Einstellungen für einen oder zwei Einträge verwendet. – Chol