2016-06-24 2 views
0

я следовать этому примеру https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView и это https://www.youtube.com/watch?v=FoX_WJ_bS8c&lc=z13nenkb1kbwhnoxb04cedjpkqnexzpyr34ListAdapter для ListView не работает - E/ViewRootImpl: performMeasure: взгляд пустой

шаг за шагом, но когда моя деятельность с моим ListView начать это совершенно черный, но приложение не блокируется, если я нажимаю кнопку «Назад», он возвращается к моей домашней деятельности, и только думаю, что шоу в 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); 
+0

Оставьте ваш код. Поэтому мы можем искать и идентифицировать его. –

+0

опубликуйте фрагмент кода ListAdapter. –

+0

код отправлен, нужен xml? – denerdener

ответ

0

Ваш супервызов класса ListAdapterItem не должен быть таким. Попробуйте это `public class ListAdapterItem расширяет ArrayAdapter { Список ArrayList; int resource; Контекстный контекст;

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); 
}} 
+0

Я не понимаю – denerdener

+0

Какую часть вы не понимаете @denerdener –

+0

ничего, забудьте. теперь я вижу что-то, если я не устанавливаю значения в текстовых просмотров, не делаю ошибок, он показывает мой список со значениями по умолчанию, у которых есть текстовое представление, но когда я устанавливаю значения, не работает снова – denerdener

0

Попробуйте это: положить в комментарии часть кода, где вы из базы данных и создает массив фиктивных данных чтобы узнать, связаны ли ваши проблемы с проблемой базы данных.

+0

Я сделал это, спасибо, но проблема продолжает идти – denerdener

+0

Я скомпилировал ваш код и не дал мне проблем. Какова ваша предыдущая деятельность в этой деятельности? Вы можете опубликовать всю свою деятельность? –

+0

, и я вызываю эту активность, которая имеет listView - Intent it = new Intent (getBaseContext(), Lidos.class); \t \t startActivity (it); – denerdener

0

Просмотрите 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(); 
      } 
     } 
    } 


} 
Смежные вопросы