listView 的 ListAdapter 不起作用 - E/ViewRootImpl: performMeasure: view is null
ListAdapter for listView doesn't work - E/ViewRootImpl: performMeasure : view is null
我遵循这个例子https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView
而这个 https://www.youtube.com/watch?v=FoX_WJ_bS8c&lc=z13nenkb1kbwhnoxb04cedjpkqnexzpyr34
一步一步来,但是当我的 activity 和我的 listView 启动时它完全是黑色的,但是应用程序没有锁定,如果我按下后退按钮,它会回到我的家 activity logcat 中唯一认为显示的是 E/ViewRootImpl: performMeasure : view is null
我是巴西人,抱歉我的英语不好
ListAdapterItem.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
/**
* Created by Dener de Souza on 23/06/2016.
*/
public class ListaAdapterItem extends ArrayAdapter<Item> {
private Context context;
private ArrayList<Item> lista;
/*private static class ViewHolder {
TextView ipen;
TextView hora;
}*/
public ListaAdapterItem(Context context, ArrayList<Item> lista){
super(context, 0, lista);
this.context = context;
this.lista = lista;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Item itemPosicao = this.lista.get(position);
/*if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.modelo_lidos2, parent, false);
}*/
convertView = LayoutInflater.from(this.context).inflate(R.layout.modelo_lidos2, null);
TextView lblIpen = (TextView)convertView.findViewById(R.id.lblIpen);
lblIpen.setText(itemPosicao.getIpen());
TextView lblData = (TextView)convertView.findViewById(R.id.lblData);
lblData.setText(itemPosicao.getData());
TextView lblHora = (TextView)convertView.findViewById(R.id.lblHr);
lblHora.setText(itemPosicao.getHora());
TextView lblLocal = (TextView)convertView.findViewById(R.id.lblLocal);
lblLocal.setText(itemPosicao.getLocal());
return convertView;
}
}
Item.java
/**
* Created by Dener de Souza on 23/06/2016.
*/
public class Item {
private String id;
private String ipen;
private String data;
private String hora;
private String local;
private String status;
public Item(String id, String ipen, String data, String hora, String local, String status) {
this.id = id;
this.ipen = ipen;
this.data = data;
this.hora = hora;
this.local = local;
this.status = status;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getIpen() {
return ipen;
}
public void setIpen(String ipen) {
this.ipen = ipen;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
}
通话清单
Cursor cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local, ipen FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
cursor.moveToFirst();
ArrayList<Item> lista = new ArrayList<Item>();
while (cursor.isAfterLast() == false){
lista.add(new Item(cursor.getString(0), cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5)));
cursor.moveToNext();
}
ListaAdapterItem ad = new ListaAdapterItem(this, lista);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);
试试这个:将您从数据库读取的代码部分放在注释中,并创建一个虚拟数据数组以查看您的问题是否涉及数据库问题。
在 CarregaGrid() 中查找;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class Lidos extends ActionBarActivity {
private int idM;
//android.widget.SimpleCursorAdapter adp = null;
//SpecialAdapter adp = null;
ListaAdapterItem adp = null;
private DatePicker datePicker;
private Calendar calendar;
private TextView dateView;
private int year, month, day;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.action_bar_home, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.home:
Home();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void Home(){
try{
Context context = getApplicationContext();
PackageManager pm = context.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(context.getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
/*Intent intent = new Intent(getBaseContext(), Menu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);*/
}catch(Exception ex){Toast.makeText(getBaseContext(), ex.toString(), Toast.LENGTH_LONG).show();}
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.lidos);
Metodos.CorActionBar(getSupportActionBar());
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
CarregaLocais();
CarregarGrid();
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
}
@Override
public void onStart(){
super.onStart();
CarregarGrid();
}
public void onResume(){
super.onResume();
EditText tbxPesquisa = (EditText) findViewById(R.id.tbxPesquisar);
tbxPesquisa.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
CarregarGrid();
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.lstDependente) {
MenuInflater inflater = getMenuInflater();
idM = ((AdapterContextMenuInfo)menuInfo).position;
inflater.inflate(R.menu.menu_contatos, menu);
}
}
private void Editar(String id){
/*SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT _id, ipen FROM dados_pessoais WHERE _id = " + id, null);
c.moveToFirst();
Intent it = new Intent(getBaseContext(), MenuCadastro.class);
it.putExtra("id", Integer.parseInt(c.getString(1)));
it.putExtra("tipo", 1);
startActivity(it);*/
Intent it = new Intent(getBaseContext(), CImagem.class);
it.putExtra("id", Integer.parseInt(id));
startActivity(it);
}
private void Deletar(String id){
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT _id, ipen FROM lidos WHERE _id = " + id, null);
c.moveToFirst();
final String numserie = c.getString(1);
final String id2 = id;
Builder msg = new Builder(Lidos.this);
msg.setMessage("Deseja Deletar este Interno da checagem de escaneados?");
msg.setNegativeButton("Não", null);
msg.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
if (db.delete("lidos", "_id = ?", new String[]{id2}) > 0) {
Toast.makeText(getBaseContext(),
"Interno Deletado.", Toast.LENGTH_SHORT).show();
CarregarGrid();
} else {
Toast.makeText(getBaseContext(), "Erro ao Deletar o Interno.",
Toast.LENGTH_SHORT).show();
}
}
});
msg.show();
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
//SQLiteCursor c = (SQLiteCursor)adp.getItem(idM);
switch(item.getItemId()) {
case R.id.editar:
//Editar(String.valueOf(c.getInt(1)));
Editar(String.valueOf(adp.getItem(idM).getIpen()));
return true;
case R.id.deletar:
//Deletar(String.valueOf(c.getInt(0)));
Deletar(String.valueOf(adp.getItem(idM).getId()));
return true;
default:
return super.onContextItemSelected(item);
}
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this, myDateListener, year, month, day);
}
return null;
}
private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
year = arg1;
month = arg2;
day = arg3;
CarregarGrid();
// arg1 = year
// arg2 = month
// arg3 = day
//Toast.makeText(getBaseContext(), new StringBuilder().append(arg1).append("/")
// .append(arg2).append("/").append(arg3), Toast.LENGTH_SHORT).show();
}
};
public void btnData_onClick(View v){
showDialog(999);
}
private void CarregarGrid(){
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
EditText tbxPesquisa = (EditText) findViewById(R.id.tbxPesquisar);
Spinner spnLocal = (Spinner)findViewById(R.id.spnLocais);
String dataPesq = " AND dt1 = " + year + " AND dt2 = " + (month + 1) + " AND dt3 = " + day;
Cursor cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local, ipen FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
cursor.moveToFirst();
ArrayList<Item> lista = new ArrayList<Item>();
while (cursor.isAfterLast() == false){
lista.add(new Item(cursor.getString(0), cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5)));
cursor.moveToNext();
}
/*cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
String[] from = {"ipen", "dt", "hr", "local"};
int[] to = {R.id.lblIpen, R.id.lblDt, R.id.lblHr, R.id.lblLocal};
android.widget.SimpleCursorAdapter ad = new android.widget.SimpleCursorAdapter(getBaseContext(),
R.layout.modelo_lidos2, cursor, from, to);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);*/
ListaAdapterItem ad = new ListaAdapterItem(this, lista);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);
//adp = ad;
//registerForContextMenu(lstPed01);
/*lstPed01.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView adapter, View view,
int position, long id){
SQLiteCursor c = (SQLiteCursor)adapter.getAdapter().getItem(position);
Editar(String.valueOf(c.getInt(1)));
}
});*/
db.close();
}
private void CarregaLocais() {
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor cursor = null;
Spinner spn = (Spinner)findViewById(R.id.spnUf);
Spinner spnLocais = (Spinner) findViewById(R.id.spnLocais);
List<String> listLocais = new ArrayList<String>();
//db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
cursor = db.rawQuery("SELECT local FROM locais ORDER BY local", null);
if (cursor.moveToFirst()){
while(!cursor.isAfterLast()){
listLocais.add(cursor.getString(0));
cursor.moveToNext();
}
}
ArrayAdapter<String> dataAdapterCidade = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, listLocais);
dataAdapterCidade.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnLocais.setAdapter(dataAdapterCidade);
spnLocais.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, int position, long id) {
CarregarGrid();
//Toast.makeText(getBaseContext(), "Spinner1: " + spn.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
//showToast("Spinner1: unselected");
}
});
cursor = db.rawQuery("SELECT valor1 FROM parametros WHERE rotina = 'LOCAL_LEITOR'",
null);
cursor.moveToFirst();
if (!String.valueOf(cursor.getInt(0)).trim().isEmpty()) {
int numserie = cursor.getInt(0);
cursor = db.rawQuery("SELECT numserie FROM locais ORDER BY local",
null);
cursor.moveToFirst();
int ind = 0;
while (!cursor.isAfterLast()) {
if (cursor.getInt(0) == numserie) {
Spinner spnLocal = (Spinner) findViewById(R.id.spnLocais);
spnLocal.setSelection(ind);
}
ind++;
cursor.moveToNext();
}
}
}
}
来自 ListAdapterItem class 的超级调用不应该是那样的。试试这个
`public class ListAdapterItem 扩展 ArrayAdapter{
ArrayList 列表;
内部资源;
语境语境;
public ListAdapterItem(Context context, int resource, ArrayList<Item> list){
super(context, resource, list);
this.list = list;
this.resource = resource;
this.context = context;
}
@Override
public View getView(){
convertView = LayoutInflater.from(this.context).inflate(this.resource, parent, false);
}}
我遵循这个例子https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView 而这个 https://www.youtube.com/watch?v=FoX_WJ_bS8c&lc=z13nenkb1kbwhnoxb04cedjpkqnexzpyr34
一步一步来,但是当我的 activity 和我的 listView 启动时它完全是黑色的,但是应用程序没有锁定,如果我按下后退按钮,它会回到我的家 activity logcat 中唯一认为显示的是 E/ViewRootImpl: performMeasure : view is null
我是巴西人,抱歉我的英语不好
ListAdapterItem.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
/**
* Created by Dener de Souza on 23/06/2016.
*/
public class ListaAdapterItem extends ArrayAdapter<Item> {
private Context context;
private ArrayList<Item> lista;
/*private static class ViewHolder {
TextView ipen;
TextView hora;
}*/
public ListaAdapterItem(Context context, ArrayList<Item> lista){
super(context, 0, lista);
this.context = context;
this.lista = lista;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Item itemPosicao = this.lista.get(position);
/*if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.modelo_lidos2, parent, false);
}*/
convertView = LayoutInflater.from(this.context).inflate(R.layout.modelo_lidos2, null);
TextView lblIpen = (TextView)convertView.findViewById(R.id.lblIpen);
lblIpen.setText(itemPosicao.getIpen());
TextView lblData = (TextView)convertView.findViewById(R.id.lblData);
lblData.setText(itemPosicao.getData());
TextView lblHora = (TextView)convertView.findViewById(R.id.lblHr);
lblHora.setText(itemPosicao.getHora());
TextView lblLocal = (TextView)convertView.findViewById(R.id.lblLocal);
lblLocal.setText(itemPosicao.getLocal());
return convertView;
}
}
Item.java
/**
* Created by Dener de Souza on 23/06/2016.
*/
public class Item {
private String id;
private String ipen;
private String data;
private String hora;
private String local;
private String status;
public Item(String id, String ipen, String data, String hora, String local, String status) {
this.id = id;
this.ipen = ipen;
this.data = data;
this.hora = hora;
this.local = local;
this.status = status;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getIpen() {
return ipen;
}
public void setIpen(String ipen) {
this.ipen = ipen;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
}
通话清单
Cursor cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local, ipen FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
cursor.moveToFirst();
ArrayList<Item> lista = new ArrayList<Item>();
while (cursor.isAfterLast() == false){
lista.add(new Item(cursor.getString(0), cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5)));
cursor.moveToNext();
}
ListaAdapterItem ad = new ListaAdapterItem(this, lista);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);
试试这个:将您从数据库读取的代码部分放在注释中,并创建一个虚拟数据数组以查看您的问题是否涉及数据库问题。
在 CarregaGrid() 中查找;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class Lidos extends ActionBarActivity {
private int idM;
//android.widget.SimpleCursorAdapter adp = null;
//SpecialAdapter adp = null;
ListaAdapterItem adp = null;
private DatePicker datePicker;
private Calendar calendar;
private TextView dateView;
private int year, month, day;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.action_bar_home, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.home:
Home();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void Home(){
try{
Context context = getApplicationContext();
PackageManager pm = context.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(context.getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
/*Intent intent = new Intent(getBaseContext(), Menu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);*/
}catch(Exception ex){Toast.makeText(getBaseContext(), ex.toString(), Toast.LENGTH_LONG).show();}
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.lidos);
Metodos.CorActionBar(getSupportActionBar());
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
CarregaLocais();
CarregarGrid();
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
}
@Override
public void onStart(){
super.onStart();
CarregarGrid();
}
public void onResume(){
super.onResume();
EditText tbxPesquisa = (EditText) findViewById(R.id.tbxPesquisar);
tbxPesquisa.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
CarregarGrid();
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.lstDependente) {
MenuInflater inflater = getMenuInflater();
idM = ((AdapterContextMenuInfo)menuInfo).position;
inflater.inflate(R.menu.menu_contatos, menu);
}
}
private void Editar(String id){
/*SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT _id, ipen FROM dados_pessoais WHERE _id = " + id, null);
c.moveToFirst();
Intent it = new Intent(getBaseContext(), MenuCadastro.class);
it.putExtra("id", Integer.parseInt(c.getString(1)));
it.putExtra("tipo", 1);
startActivity(it);*/
Intent it = new Intent(getBaseContext(), CImagem.class);
it.putExtra("id", Integer.parseInt(id));
startActivity(it);
}
private void Deletar(String id){
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT _id, ipen FROM lidos WHERE _id = " + id, null);
c.moveToFirst();
final String numserie = c.getString(1);
final String id2 = id;
Builder msg = new Builder(Lidos.this);
msg.setMessage("Deseja Deletar este Interno da checagem de escaneados?");
msg.setNegativeButton("Não", null);
msg.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
if (db.delete("lidos", "_id = ?", new String[]{id2}) > 0) {
Toast.makeText(getBaseContext(),
"Interno Deletado.", Toast.LENGTH_SHORT).show();
CarregarGrid();
} else {
Toast.makeText(getBaseContext(), "Erro ao Deletar o Interno.",
Toast.LENGTH_SHORT).show();
}
}
});
msg.show();
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
//SQLiteCursor c = (SQLiteCursor)adp.getItem(idM);
switch(item.getItemId()) {
case R.id.editar:
//Editar(String.valueOf(c.getInt(1)));
Editar(String.valueOf(adp.getItem(idM).getIpen()));
return true;
case R.id.deletar:
//Deletar(String.valueOf(c.getInt(0)));
Deletar(String.valueOf(adp.getItem(idM).getId()));
return true;
default:
return super.onContextItemSelected(item);
}
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this, myDateListener, year, month, day);
}
return null;
}
private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
year = arg1;
month = arg2;
day = arg3;
CarregarGrid();
// arg1 = year
// arg2 = month
// arg3 = day
//Toast.makeText(getBaseContext(), new StringBuilder().append(arg1).append("/")
// .append(arg2).append("/").append(arg3), Toast.LENGTH_SHORT).show();
}
};
public void btnData_onClick(View v){
showDialog(999);
}
private void CarregarGrid(){
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
EditText tbxPesquisa = (EditText) findViewById(R.id.tbxPesquisar);
Spinner spnLocal = (Spinner)findViewById(R.id.spnLocais);
String dataPesq = " AND dt1 = " + year + " AND dt2 = " + (month + 1) + " AND dt3 = " + day;
Cursor cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local, ipen FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
cursor.moveToFirst();
ArrayList<Item> lista = new ArrayList<Item>();
while (cursor.isAfterLast() == false){
lista.add(new Item(cursor.getString(0), cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5)));
cursor.moveToNext();
}
/*cursor = db.rawQuery("SELECT _id, ipen, dt, hr, local FROM lidos WHERE ipen LIKE '" +
tbxPesquisa.getText().toString() + "%' AND local = '" +
spnLocal.getSelectedItem().toString().trim() + "' " + dataPesq + " ORDER BY dt, hr", null);
String[] from = {"ipen", "dt", "hr", "local"};
int[] to = {R.id.lblIpen, R.id.lblDt, R.id.lblHr, R.id.lblLocal};
android.widget.SimpleCursorAdapter ad = new android.widget.SimpleCursorAdapter(getBaseContext(),
R.layout.modelo_lidos2, cursor, from, to);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);*/
ListaAdapterItem ad = new ListaAdapterItem(this, lista);
ListView lstPed01 = (ListView)findViewById(R.id.lstDependente);
lstPed01.setAdapter(ad);
//adp = ad;
//registerForContextMenu(lstPed01);
/*lstPed01.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView adapter, View view,
int position, long id){
SQLiteCursor c = (SQLiteCursor)adapter.getAdapter().getItem(position);
Editar(String.valueOf(c.getInt(1)));
}
});*/
db.close();
}
private void CarregaLocais() {
SQLiteDatabase db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
Cursor cursor = null;
Spinner spn = (Spinner)findViewById(R.id.spnUf);
Spinner spnLocais = (Spinner) findViewById(R.id.spnLocais);
List<String> listLocais = new ArrayList<String>();
//db = openOrCreateDatabase("db_sigin.db", Context.MODE_PRIVATE, null);
cursor = db.rawQuery("SELECT local FROM locais ORDER BY local", null);
if (cursor.moveToFirst()){
while(!cursor.isAfterLast()){
listLocais.add(cursor.getString(0));
cursor.moveToNext();
}
}
ArrayAdapter<String> dataAdapterCidade = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, listLocais);
dataAdapterCidade.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnLocais.setAdapter(dataAdapterCidade);
spnLocais.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, int position, long id) {
CarregarGrid();
//Toast.makeText(getBaseContext(), "Spinner1: " + spn.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
//showToast("Spinner1: unselected");
}
});
cursor = db.rawQuery("SELECT valor1 FROM parametros WHERE rotina = 'LOCAL_LEITOR'",
null);
cursor.moveToFirst();
if (!String.valueOf(cursor.getInt(0)).trim().isEmpty()) {
int numserie = cursor.getInt(0);
cursor = db.rawQuery("SELECT numserie FROM locais ORDER BY local",
null);
cursor.moveToFirst();
int ind = 0;
while (!cursor.isAfterLast()) {
if (cursor.getInt(0) == numserie) {
Spinner spnLocal = (Spinner) findViewById(R.id.spnLocais);
spnLocal.setSelection(ind);
}
ind++;
cursor.moveToNext();
}
}
}
}
来自 ListAdapterItem class 的超级调用不应该是那样的。试试这个 `public class ListAdapterItem 扩展 ArrayAdapter{ ArrayList 列表; 内部资源; 语境语境;
public ListAdapterItem(Context context, int resource, ArrayList<Item> list){
super(context, resource, list);
this.list = list;
this.resource = resource;
this.context = context;
}
@Override
public View getView(){
convertView = LayoutInflater.from(this.context).inflate(this.resource, parent, false);
}}