>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Erro criação do SimpleCursorAdapter




Boa noite
Desculpe- me por criar o Tópico novamente
Estou com erro na criação do SimpleCursorAdapter esta me dando a mensagem
Call requires API level 11 (current min is 8): new android.widget.SimpleCursorAdapter

e nao consigo compilar.



21 Respostas




Cara... não sei se é isso, mas verifica no inicio do código se o seu import é esse aqui:


import android.widget.SimpleCursorAdapter;


Aqui comigo o eclipse está acusando não um erro, mas um aviso de depreciação, que o "SimpleCursorAdapter" está para sair em novas versões da linguagem.




ja havia colocado o import mas ainda da o erro.... acho que vou reinstalar o eclipse




Cristiano

Veja que o

SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) é da API level 11.

Tente assim:

SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to);

Veja o curso de Android Best Practices, lá é falado de como criar os próprios adapater, que é uma boa prática.




olá, estou com um problema parecido


no meu caso, informa que o método está depreciado. Qual método devo usar agora?




Resolvi o problema da seguinte forma:
Quando ele apresenta o erro, coloco o mouse em cima do erro, conforme a figura mostrada no post acima, e escolho a primeira opção Add@SuppressLint'New API' to 'OnCreate()'. Fazendo isso o eclipse acrescenta o seguinte import: import android.annotation.SuppressLint; e pronto, o erro some. Gostaria de saber se essa é a forma correta de resolver o problema e se sim, que pacote é esse que eclipse importou para resolver esse problema?

Co relação ao ultimo parâmetro do construtor SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags), int flags, para que ele serve?




Thadeu Batista esta opção de add@SuppressLint'New API' to 'OnCreate() voce conseguiu compilar certinho no emulador do android?




Consegui fazer funcionar neste modo conforme a figura abaixo.(com um SimpleCursorAdapter tachado)

http://rlsystem.com.br/forum/disco/uploads/8200161ed10e038f281d5b7fcd0b72ef-erro.jpg

Obrigado pela ajuda






olá cristiano, sim consegui compilar certinho depois que adicionei este recurso. Sumiu todos os erros e a aplicação ta rodando normalmente. Só não entendo para que ela serve. Gostaria que o Rafael explicasse o que ocorreu, se esse é a solução correta para esse tipo de erro e o que é esse add@SuppressLint.




Ola pessoal ...

Não sei se deveria continuar o post, mas como meu problema é semelhante, resolvi aproveitar post.

No meu caso nao acusa erro, porem na compilação no momento de chamar a activity de vendas da um erro no emulador pedindo para forrçar a finalização.

Os testes que realizei retirando o trecho de codigo :

SimpleCursorAdapter ad = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner, cursor, from, to,0);
spProduto.setAdapter(ad);

Após retirrar este codigo ele chama a activity normalmente.

Obrigado pessoal.




Ola pessoal, o meu caso é parecido também,
ele não reconhece o spProduto.setAdapter(ad);
conferi os "import" dos prints, e não mudou nada...




Estou tendo o mesmo problema... o aplicativo não quer compilar

vejam só... peguei isso do 3º vídeo da aula gratuita


package br.com.example.rlsystem.androidday;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
//import android.widget.SimpleCursorAdapter;

public class ListarActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listar);

SQLiteDatabase db = openOrCreateDatabase("clientes.db", Context.MODE_PRIVATE, null);

StringBuilder sqlClientes = new StringBuilder();
sqlClientes.append("CREATE TABLE IF NOT EXISTS clientes (");
sqlClientes.append("_id INTEGER PRIMARY KEY, ");
sqlClientes.append("nome VARCHAR(30), ");
sqlClientes.append("email VARCHAR(30)), ");

// sqlClientes.append("insert into clientes(_id, nome) values(1, 'Guilherme')");
db.execSQL(sqlClientes.toString());

Cursor cursor = db.rawQuery("SELECT * FROM query", null);

String[] from = {"_id", "nome"};
int[] to = {R.id.txvID, R.id.txvNome};

@SuppressWarnings("deprecation")
android.widget.SimpleCursorAdapter ad = new android.widget.SimpleCursorAdapter(getBaseContext(),R.layout.listar_model,
cursor, from, to);

ListView ltwDados = (ListView)findViewById(R.id.ltwDados);

ltwDados.setAdapter(ad);
}
}


notem que eu coloquei "@SuppressWarnings("deprecation")" e mesmo assim não funciona




Lembrando que na linha 35, aonde está "new android.widget.SimpleCursorAdapter(...)" o SimpleCursorAdapter está riscado




Pessoal,

o import ta é errado, seria este:

android.support.v4.widget.SimplesCursorAdapter




Está dando o mesmo erro

O "SimpleCursorAdapter" continua riscado




Coloque mais um parâmetro nele, depois do to, coloque um 0.




está aqui o código


package br.com.example.rlsystem.androidday;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.widget.ListView;
//import android.widget.SimpleCursorAdapter;

public class ListarActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listar);

SQLiteDatabase db = openOrCreateDatabase("clientes.db", Context.MODE_PRIVATE, null);

StringBuilder sqlClientes = new StringBuilder();
sqlClientes.append("CREATE TABLE IF NOT EXISTS clientes (");
sqlClientes.append("_id INTEGER PRIMARY KEY, ");
sqlClientes.append("nome VARCHAR(30), ");
sqlClientes.append("email VARCHAR(30)), ");

// sqlClientes.append("insert into clientes(_id, nome) values(1, 'Guilherme')");
db.execSQL(sqlClientes.toString());

Cursor cursor = db.rawQuery("SELECT * FROM query", null);

String[] from = {"_id", "nome"};
int[] to = {R.id.txvID, R.id.txvNome};

@SuppressWarnings("deprecation")
android.support.v4.widget.SimpleCursorAdapter ad = new android.support.v4.widget.SimpleCursorAdapter(getBaseContext(),R.layout.listar_model,

cursor, from, to);

ListView ltwDados = (ListView)findViewById(R.id.ltwDados);

ltwDados.setAdapter(ad);
}
}



O risco continua dentro desse trecho "new android.support.v4.widget.SimpleCursorAdapter(...)", no SimpleCursorAdapter




Olá

Como disse, coloque mais um parâmtro, 0.

Ficando:

android.support.v4.widget.SimpleCursorAdapter ad = new android.support.v4.widget.SimpleCursorAdapter(getBaseContext(),R.layout.listar_model,

cursor, from, to, 0);




resolvi... Obrigado Rafael

e o que significa o parâmetro 0??




Olá

Seria alguma flag, como não usamos nenhuma, coloca-se 0.

Veja:

http://developer.android.com/reference/android/support/v4/widget/SimpleCursorAdapter.html#SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[], int)