listview
ve FAB içeren bir etkinlik yazdım. Benim sorunum başka bir etkinliğe götüren FAB yardımıyla yeni bir satır kümesi besliyorum, ancak listView
'a yeni satırı girdikten sonra listView
yenilenmiyor. Uygulamayı kapatmam ve değişiklikleri görmek için yeniden başlatmam gerekiyor, ancak notifyDataSetChanged()
yöntemini nerede kullanacağımı bilmiyorum.Değişikliklerden sonra liste görünümünü yenileme
Değeri listeden geçirdiğimde ve ayrıca bağdaştırıcı sınıfını yazdığım tüm sınıfı belirtiyorum.
public class ListDataAdapter1 extends ArrayAdapter {
List list = new ArrayList<>();
public ListDataAdapter1(Context context, int resource) {
super(context, resource);
}
static class LayoutHandler {
TextView ID, TYPE, AREA, LVLOE;
}
public void add(Object object) {
super.add(object);
list.add(object);
}
public int getCount() {
return list.size();
}
public Object getItem(int position) {
return list.get(position);
}
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
LayoutHandler layoutHandler;
if(row == null)
{
LayoutInflater layoutinflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutinflater.inflate(R.layout.row_layout1,parent,false);
layoutHandler = new LayoutHandler();
layoutHandler.ID = (TextView) row.findViewById(R.id.id);
layoutHandler.TYPE = (TextView) row.findViewById(R.id.type);
layoutHandler.AREA = (TextView) row.findViewById(R.id.area);
layoutHandler.LVLOE = (TextView) row.findViewById(R.id.lvlofe);
row.setTag(layoutHandler);
}
else
{
layoutHandler = (LayoutHandler) row.getTag();
}
DataProvider1 dataProvider1 = (DataProvider1) this.getItem(position);
layoutHandler.ID.setText(dataProvider1.getId1());
Log.e(dataProvider1.getId1(), "Name of the value passed");
layoutHandler.TYPE.setText(dataProvider1.getType1());
layoutHandler.AREA.setText(dataProvider1.getArea1());
layoutHandler.LVLOE.setText(dataProvider1.getLvloe1());
return row;
}
}
public class Addnew extends AppCompatActivity {
EditText ID,AREA,LVLOE;
String id,type,area,lvloe;
Button b1;
Context ctx=this;
Spinner SPINNER;
ArrayAdapter<CharSequence> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_new);
setTitle("Add new entry ");
ID = (EditText) findViewById(R.id.txtid);
SPINNER = (Spinner) findViewById(R.id.spntype);
adapter = ArrayAdapter.createFromResource(this,R.array.type_animals,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SPINNER.setAdapter(adapter);
SPINNER.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
type = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
AREA = (EditText) findViewById(R.id.txtarea);
LVLOE = (EditText) findViewById(R.id.txtlvlofe);
b1= (Button) findViewById(R.id.adden);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
id = ID.getText().toString();
area = AREA.getText().toString();
lvloe = LVLOE.getText().toString();
DbOp db = new DbOp(ctx);
db.putInformation1(db, id, type, area, lvloe);
Toast.makeText(getBaseContext(), "Sucessfully registered", Toast.LENGTH_LONG).show();
finish();
}
});
}
}
public class DataProvider1 {
private String id1;
private String type1;
private String area1;
private String lvloe1;
public String getId1() {
return id1;
}
public void setId1(String id1) {
this.id1 = id1;
}
public String getType1() {
return type1;
}
public void setType1(String type1) {
this.type1 = type1;
}
public String getLvloe1() {
return lvloe1;
}
public void setLvloe1(String lvloe1) {
this.lvloe1 = lvloe1;
}
public String getArea1() {
return area1;
}
public void setArea1(String area1) {
this.area1 = area1;
}
public DataProvider1(String id1,String type1,String area1,String lvloe1)
{
this.id1 = id1;
this.type1 = type1;
this.area1 = area1;
this.lvloe1 = lvloe1;
}
}
liste görünümü liste görünümü; EditText görünümü;
SQLiteDatabase sqLiteDatabase;
DbOp dbOp;
Cursor cursor;
ListDataAdapter1 listDataAdapter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home_activity);
setTitle("Home ");
listView = (ListView) findViewById(R.id.listView1);
listDataAdapter1 = new ListDataAdapter1(getApplicationContext(),R.layout.row_layout);
listView.setAdapter(listDataAdapter1);
dbOp = new DbOp(getApplicationContext());
sqLiteDatabase = dbOp.getReadableDatabase();
cursor = dbOp.getInformation1(sqLiteDatabase);
if(cursor.moveToFirst())
{
do{
String id,type,area,lvlofe;
id = cursor.getString(0);
type = cursor.getString(1);
area = cursor.getString(2);
lvlofe = cursor.getString(3);
DataProvider1 dataProvider1 = new DataProvider1(id,type,area,lvlofe);
listDataAdapter1.add(dataProvider1);
}while(cursor.moveToNext());
}
}
public void addnew(View view)
{
Intent intent=new Intent(this,Addnew.class);
startActivity(intent);
}
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.mymenu, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case R.id.update:
Intent intent1 = new Intent(this,UpdateActivity1.class);
startActivity(intent1);
return super.onOptionsItemSelected(item);
case R.id.delete:
Intent intent= new Intent(this,DeleteEntry_Activity.class);
startActivity(intent);
return super.onOptionsItemSelected(item);
/*case R.id.logout:
Intent intent1 = new Intent(this,LoginActivity.class);
startActivity(intent1);*/
default:
return super.onOptionsItemSelected(item);
}
}
}
yaptığını ancak hiçbir faydası, onun ferahlatıcı değil :( –
başkası yok diğer yöntemler ise "liste" değişkeninizde değişiklik yaptığınız "ekleme" den daha mı? – Pooya
i orjinal deftere yeni bir sınıf kodu ekledim, listeye yeni bir giriş eklemek için en üst sınıfta bulunan düğmeyi tıklattığımda açılacak, listeden başka bir yöntem bulunmuyor. Listemde değişiklik yapabilir –