Ошибка экспорта строки - PullRequest
       31

Ошибка экспорта строки

2 голосов
/ 28 декабря 2011

Я создал приложение, которое подключается к базе данных SQL, и мне возвращаются записи из таблицы базы данных.

То, что я сделал, это: В приложении я могу видеть записи, которые находятся в таблице базы данных. То, что я хочу: Когда я выбираю запись в приложении, автоматически открывается другое окно и отображается запись, которую я выбрал.

Но теперь выдает ошибку (извините! Приложение net Ben (процесс net.ben) неожиданно остановилось. Пожалуйста, повторите попытку), и приложение закрывается. Я думаю, что это что-то с преобразованием строки Arraylist в строку связки.

Это мой код:

public class SeleccionarTipoIncidencia extends Activity {
private ArrayList<String> datos;
public String PRUEBA;
//private ArrayList<String> datosCod;

//public NaviverdeSQLiteHelper usdbh;
protected EspaisVerdsApplication app;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tipoincidencia);
    datos = new ArrayList<String>();
    //datosCod = new ArrayList<String>();

    try {
        NotesCenter messageCenter = new NotesCenterImpl();

        List<TipoIncidencia> tipoincidencia = messageCenter.getTipoIncidencia();

        for (TipoIncidencia e : tipoincidencia) {
            //datosCod.add("1");
            datos.add(e.id);

        }   
        } catch (Exception ex) {
        //  showMessage(ex);
            Log.v("blah", ex.getMessage());
        }

    ArrayAdapter<String> adaptador = 
        new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, datos);     

    final TextView lblMensaje = (TextView)findViewById(R.id.MensajeTipoIncidencia);       
    final GridView grdOpciones = (GridView)findViewById(R.id.GridTipoIncidencia);
    Log.i("YourApp", "Argh Works?");
    grdOpciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, android.view.View v, int position, long id) {        
            lblMensaje.setText("Incidencia Seleccionada: " + datos.get(position));

                Intent intentTipIni = new Intent(SeleccionarTipoIncidencia.this, FrmIncidencias.class);
                            //Creamos la información a pasar entre actividades
                            Bundle b = new Bundle(); 
                            b.putString("TIPOINCIDENCIA", lblMensaje.getText().toString());

                            //Añadimos la información al intent
                            intentTipIni.putExtras(b);

                            //Iniciamos la nueva actividad
                            startActivity(intentTipIni);
                            Log.i("YourApp", "Bueno7"); 
                            finish();
        }
    });

    grdOpciones.setAdapter(adaptador);
}
}
protected PowerManager.WakeLock wakelock;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.frmincidencias);

    TextView txtSaludo = (TextView)findViewById(R.id.TxtTipoIncidenciaSeleccionado);

    //Recuperamos la información pasada en el intent
    Bundle bundle = this.getIntent().getExtras();

    //Construimos el mensaje a mostrar
    txtSaludo.setText("Hola " + bundle.getString("TIPOINCIDENCIA"));

Я получаю сообщение об ошибке в последней строке.

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Я не совсем уверен, как работает putExtras, но я верю, что putExtra(String, String) работает должным образом (я использовал его несколько раз), поэтому вместо создания Bundle я бы сделал следующее:

Intent intentTipIni = new Intent(SeleccionarTipoIncidencia.this, FrmIncidencias.class);
intentTipIni.putExtra("TIPOINCIDENCIA", lblMensaje.getText().toString());
startActivity(intentTipIni);

Редактировать

Кроме того, это может быть

TextView txtSaludo = (TextView) findViewById(R.id.TxtTipoIncidenciaSeleccionado);

, то есть null.Можете ли вы убедиться, что это не null?

0 голосов
/ 28 декабря 2011

Вы проверяете, что startActivity(Intent i) действительно успешно? Если нет, это может не привязать Intent к вашему классу, и тогда вам может не назначиться Bundle. Следовательно, вы получаете NullPointerException, или, возможно, не правильный Bundle, и в этом случае ваш String "T ...." не является допустимым ключом, поэтому выдает ошибку. Проверьте это.

...