PDA

View Full Version : (کممممممک) مشکل در لیست ویو (این مشکلم رفع بشه برنامم تمومه)



amint70
جمعه 07 اسفند 1394, 10:20 صبح
سلام دوستان یه برنامه نوشتم کدشو میزارم خواهشن اگه کسی میدونه کمک کنه برنامم آخرشه

اگه الان این برنامرو اجرا کنید کار میکنه و اطلاعاتو تو دیتابیس ذخیره میکنه ولی اگه اون اداپتر رو تو برای لیست ویو فعال کنم (تو MainActivity) لیست ویو ارور میده و از برنامه خارج میشه
اگه کسی میدونه کمک کنه
ممنون





MainActivity



import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
EditText name,id;
Button save;
TextView num;
ListView list;
DatabaseManager db = new DatabaseManager(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

name = (EditText)findViewById(R.id.name);
id = (EditText)findViewById(R.id.id);
num = (TextView)findViewById(R.id.num);
save = (Button)findViewById(R.id.save);
list = (ListView)findViewById(R.id.list);

// List<String> values = db.getAllContacts();
// final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, values);


save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String names = name.getText().toString();
int ids = Integer.parseInt(id.getText().toString());
Stu stu = new Stu();
stu.ID=ids;
stu.NAME = names;
db.addstu(stu);
final int count = db.getnamecount();
num.setText(count+"");
// list.setAdapter(adapter);
}
});

}
}

DatabaseManager



import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.ArrayAdapter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DatabaseManager extends SQLiteOpenHelper {


public DatabaseManager(Context context){super(context, "database", null, 10);
}

@Override
public void onCreate(SQLiteDatabase db) {
String query =" CREATE TABLE tbl ( "+
" ID INT (0), " +
" NAME VARCHAR (20) " +
" );";

db.execSQL(query);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS TBL");
onCreate(db);
}


public boolean addstu (Stu stu){
boolean resalt;
try {

String query = "INSERT INTO tbl (ID,name) VALUES ("+stu.ID+",'"+stu.NAME+"')";
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(query);
db.close();
resalt= true;
}catch (Exception ex){
resalt = false;
}
return resalt;
}




public int getnamecount(){
int resalt =0;
String query = "SELECT * FROM tbl";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
resalt=cursor.getCount();
return resalt;

}

public List<String> getAllContacts()
{

String Query = "SELECT name FROM tbl";

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(Query, null);
List<String> notes = new ArrayList<String>();

if (cursor.moveToFirst())
{

do {

String note = cursor.getString(1);
// notes = new ArrayList<String>(Arrays.asList(note));
notes.add(note);

}
while (cursor.moveToNext());

}
return notes;
}


}

activity_main



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical" >

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/name"
android:hint="NAME" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/id"
android:layout_gravity="right"
android:hint="ID" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="save"
android:id="@+id/save"
android:layout_gravity="center_horizontal" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/num"
android:layout_gravity="center_horizontal" />

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list" />

</LinearLayout>


Stu


public class Stu {

public int ID;
public String NAME;
}

JYasProgramer
جمعه 07 اسفند 1394, 12:46 عصر
سلام کلاس MainActivity

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
EditText name,id;
Button save;
TextView num;
ListView list;
DatabaseManager db = new DatabaseManager(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

name = (EditText)findViewById(R.id.name);
id = (EditText)findViewById(R.id.id);
num = (TextView)findViewById(R.id.num);
save = (Button)findViewById(R.id.save);
list = (ListView)findViewById(R.id.list);

List<String> values = db.getAllContacts();
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, values);


save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String names = name.getText().toString();
int ids = Integer.parseInt(id.getText().toString());
Stu stu = new Stu();
stu.ID=ids;
stu.NAME = names;
db.addstu(stu);
final int count = db.getnamecount();
num.setText(count+"");
adapter.add(names);
adapter.notifyDataSetChanged();
}
});

list.setAdapter(adapter);

}
}


متد getAllContacts() کلاس DatabaseManager

public List<String> getAllContacts()
{

String Query = "SELECT name FROM tbl";

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(Query, null);
List<String> notes = new ArrayList<String>();

if (cursor.moveToFirst())
{

do {

String note = cursor.getString(cursor.getColumnIndex("NAME"));
// notes = new ArrayList<String>(Arrays.asList(note));
notes.add(note);

}
while (cursor.moveToNext());

}
return notes;
}

amint70
جمعه 07 اسفند 1394, 13:12 عصر
آقا دستت درد نکنه خیلی لطف کردی :قلب::قلب::قلب:
من تو تاپیک قبلی گفتم هر کی اینو برام حل کنه جایزه داره
در مقابل کاری که کردین ناچیزه شماره تلفنتونو یا ای دی تلگرامتونو برام بفرستین تا یه شارژ براتون بفرستم :تشویق::تشویق: