Добрый вечер, Мне нужно знать, как отправить строку с помощью намерения в базу данных!отправьте строку по ссылке в базу данных
Я попытался сделать это, но это не сработало.
Это код действия.
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
note = (EditText) findViewById(R.id.etNote);
String notes = note.getText().toString();
db.insert(notes);
}
});
И это код из базы данных.
public long insert(String message) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(NOTE, message);
return db.insert(DATABASE_TABLE, null, cv);
}
Но, к сожалению, это не сработало! Кто-нибудь знает, как это сделать?
Вот и весь код для деятельности, которая покажет listView с базой данных.
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.widget.ListView;
public class show extends FragmentActivity implements LoaderCallbacks<Cursor> {
SimpleCursorAdapter mAdapter;
ListView mListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
mListView = (ListView) findViewById(R.id.listview);
mAdapter = new SimpleCursorAdapter(getBaseContext(),
R.layout.listview_item_layout,
null,
new String[] { CustomerDB.NOTE},
new int[] { R.id.note }, 0);
mListView.setAdapter(mAdapter);
/** Creating a loader for populating listview from sqlite database */
/** This statement, invokes the method onCreatedLoader() */
getSupportLoaderManager().initLoader(0, null, this);
}
/** A callback method invoked by the loader when initLoader() is called */
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
Uri uri = Customer.CONTENT_URI;
return new CursorLoader(this, uri, null, null, null, null);
}
/** A callback method, invoked after the requested content provider returned all the data */
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
mAdapter.swapCursor(arg1);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
mAdapter.swapCursor(null);
}
}
И это поставщик контента.
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
/** A custom Content Provider to do the database operations */
public class Customer extends ContentProvider{
public static final String PROVIDER_NAME = "in.wptrafficanalyzer.sqllistviewdemo.customer";
/** A uri to do operations on cust_master table. A content provider is identified by its uri */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/customers");
/** Constants to identify the requested operation */
private static final int CUSTOMERS = 1;
private static final UriMatcher uriMatcher ;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(PROVIDER_NAME, "customers", CUSTOMERS);
}
/** This content provider does the database operations by this object */
CustomerDB mCustomerDB;
/** A callback method which is invoked when the content provider is starting up */
@Override
public boolean onCreate() {
mCustomerDB = new CustomerDB(getContext());
return true;
}
@Override
public String getType(Uri uri) {
return null;
}
/** A callback method which is by the default content uri */
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
if(uriMatcher.match(uri)==CUSTOMERS){
return mCustomerDB.getAllCustomers();
}else{
return null;
}
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
return null;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}
}
И это база данных.
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
public class CustomerDB extends SQLiteOpenHelper{
/** Database name */
private static String DBNAME = "sqllistviewdemo";
/** Version number of the database */
private static int VERSION = 1;
/** Field 1 of the table cust_master, which is the primary key */
public static final String KEY_ROW_ID = "_id";
public static final String NOTE="OK";
/** A constant, stores the the table name */
private static final String DATABASE_TABLE = "cust_master";
/** An instance variable for SQLiteDatabase */
private SQLiteDatabase mDB;
/** Constructor */
public CustomerDB(Context context) {
super(context, DBNAME, null, VERSION);
this.mDB = getWritableDatabase();
}
/** This is a callback method, invoked when the method
* getReadableDatabase()/getWritableDatabase() is called
* provided the database does not exists
* */
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table "+ DATABASE_TABLE + " ("
+ KEY_ROW_ID + " integer primary key autoincrement , "
+ NOTE + " text ) " ;
db.execSQL(sql);
}
public long insert(String message) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(NOTE, message);
return db.insert(DATABASE_TABLE, null, cv);
}
/** Returns all the customers in the table */
public Cursor getAllCustomers(){
return mDB.query(DATABASE_TABLE, new String[] { KEY_ROW_ID, NOTE } ,
null, null, null, null,null
);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
Вы должны объяснить, в деталях,что «это не сработало» означает. – CommonsWare
Также объясните, что вы подразумеваете под «через намерение» –
Я имею в виду, что база данных не отображается в виде списка. через intent = using intent :) –