>
Bom dia!
Eu tenho um spinner em que o conteudo é uma lista de 1 a 5, e ao selecionar um item qualquer queria gravar na base de dados!
package com.example.tougle.app;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
//http://pulse7.net/android/android-spinner-dropdown-list-example/
public class MainActivity extends ActionBarActivity {
Spinner iniciativa_spinner;
Button btOK;
private DBAdapter datasource;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datasource = new DBAdapter(this);
iniciativa_spinner = (Spinner) findViewById(R.id.iniciativa_spinner);
iniciativa_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> adapter, View v,
int position, long id) {
String ValorSelecionado = adapter.getItemAtPosition(position).toString();
Toast.makeText(adapter.getContext(), "Selecionou: " + ValorSelecionado,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub
}
});
btOK = (Button) findViewById(R.aluno.btOK);
btOK.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
datasource.open();
Session s = datasource.createSession( //AQUI NÃO SEI COMO CHAMAR A SPINNER PARA GUARDAR O VALOR);
datasource.close();
AlertDialog.Builder dialogo = new
AlertDialog.Builder(MainActivity.this);
dialogo.setTitle("Aviso");
dialogo.setMessage("Nível de iniciativa:" + s.getId());
dialogo.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
dialogo.show();
}
});
}
}
ola cristiana
mostra p mim... a classe q ta o metodo datasource....
DBAdapter.java
public class DBAdapter {
private SQLiteDatabase database;
private DbHelper dbHelper;
private String[] allColumnsSession = { DbHelper.ID, DbHelper.NIVELINICIATIVA };
public DBAdapter(Context context) {
dbHelper = new DbHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
//Session
public Session createSession(int niveliniciativa){
ContentValues values = new ContentValues();
values.put(dbHelper.NIVELINICIATIVA,niveliniciativa);
long insertId = database.insert(dbHelper.TABLE_SESSION, null, values);
// To show how to query
Cursor cursor = database.query(dbHelper.TABLE_SESSION, allColumnsSession, dbHelper.ID " = " insertId, null,null, null, null);
cursor.moveToFirst();
return cursorToSession(cursor);
}
public void EliminaSession (int idSession){
//database.delete(DB.TABLE_NAME, "id=?", new String [] {Integer.toString(idContacto)});
database.delete(DbHelper.TABLE_SESSION, DbHelper.ID " = " idSession, null);
}
private Session cursorToSession(Cursor cursor) {
Session session = new Session(cursor.getLong(0), cursor.getInt(1));
return session;
}
public Cursor getSessions(){
Cursor cursor = database.rawQuery("select _id, niveliniciativa from session", null);
return cursor;
}
public Session getSession (int idSession){
Cursor cursor = database.query(dbHelper.TABLE_SESSION, allColumnsSession, dbHelper.ID " = " idSession, null, null, null, null);
cursor.moveToFirst();
return cursorToSession(cursor);
}
}
DbHelper.java
public class DbHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION =1;
private static final String DATABASE_NAME = "obs.db";
//Session
public static final String TABLE_SESSION = "session";
//Campos da tabela Session
public static final String ID = "_id";
public static final String NIVELINICIATIVA = "niveliniciativa";
private static final String DATABASE_CREATE_SESSION = "create table "
TABLE_SESSION "(" ID " integer primary key autoincrement, "
NIVELINICIATIVA " integer not null);";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_SESSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(DbHelper.class.getName(), "Upgrading database from version " oldVersion " to " newVersion ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " TABLE_SESSION);
onCreate(db);
}
}
MainActivity.java
public class MainActivity extends ListActivity {
ListAdapter adapter; //permite mostrar várias informações em uma linha do ListView
DBAdapter datasource; //permite fazer operações na base de dados
Spinner iniciativa_spinner;
Button btOK;
//private DBAdapter datasource;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datasource = new DBAdapter(this);
datasource.open();
Cursor cursor = datasource.getSessions();
String[] columns = new String[] { "niveliniciativa" };
int[] to = new int[] { R.id.niveliniciativa};
adapter = new SimpleCursorAdapter(
this,
R.layout.nivel_list_item,
cursor,
columns,
to);
this.setListAdapter(adapter);
datasource.close();
iniciativa_spinner = (Spinner) findViewById(R.id.iniciativa_spinner);
iniciativa_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> adapter, View v,
int position, long id) {
String ValorSelecionado = adapter.getItemAtPosition(position).toString();
Toast.makeText(adapter.getContext(), "Selecionou: " ValorSelecionado,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub
}
});
btOK = (Button) findViewById(R.aluno.btOK);
btOK.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
datasource.open();
int iniciativa = 0 ;
switch(iniciativa_spinner.getSelectedItemPosition()) {
case 1: iniciativa = 1; break;
case 2: iniciativa = 2; break;
case 3: iniciativa = 3; break;
case 4: iniciativa = 4; break;
}
Session s = datasource.createSession(iniciativa);
datasource.close();
AlertDialog.Builder dialogo = new
AlertDialog.Builder(MainActivity.this);
dialogo.setTitle("Aviso");
dialogo.setMessage("Nível de iniciativa:" // s.getId()
String.valueOf(iniciativa));
dialogo.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//finish();
}
});
dialogo.show();
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
datasource.open();
Cursor cursor = datasource.getSessions();
String[] columns = new String[] { "niveliniciativa" };
int[] to = new int[] { R.id.niveliniciativa};
adapter = new SimpleCursorAdapter(
this,
R.layout.nivel_list_item,
cursor,
columns,
to);
this.setListAdapter(adapter);
datasource.close();
}
}
strings.xml
tougle
Hello world!
Settings
Nível de iniciativa
Nível de iniciativa
- 1
- 2
- 3
- 4
OK
mas kd os itens??
Bom dia!
Desculpa mas não percebi a questão!
bom dia...
kd os itens q vc quer q apareça.....??
é aquele la 1 , 2 ,3 ,4...
Ah, sim o que está na string.xml 1,2,3,4 é o que aparece no spinner
Ola! boa tarde!
Há forma de no MainActivity.java em
btOK = (Button) findViewById(R.aluno.btOK);
btOK.setOnClickListener(new View.OnClickListener() {
...
Session s = datasource.createSession(iniciativa);
iniciativa_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
mas eu ainda naum entendi... vc qr colocar 1,2,3,4.???
Eu tenho 1,2,3,4 como poderia ter outros elementos...eu quero selecionar um só elemento entre 1 a 4... e quero que esse numero selecionado seja gravado na base de dados.
Ola Cristiana
dê uma olhada nesse site aqui
http://vogella.com/tutorials/AndroidListView/article.html