2013-08-11 4 views
0

У меня есть макет с 3 кнопками Создать, Показать и установить. при нажатии кнопки «Создать» и «Показать» они отлично работают и передаются в следующую деятельность независимо от того, что это такое. , но мне нужно проверить кнопку настройки. то есть, если таблица паролей существует, тогда она должна перейти в password.class, а если не существует, то в Setting.class.проверка состояния активности

при попытке этого кода инструкция else показывает мертвый код и не отвечает.

import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.app.Activity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 


public class MainActivity extends Activity { 

Button create, show, setting; 
String pass1,pass2; 

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


    create = (Button)findViewById(R.id.button1); 
    create.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent1 = new Intent(view.getContext(), Create.class); 
      startActivityForResult(myIntent1, 0); 
     } 

    }); 


    show = (Button)findViewById(R.id.button2); 
    show.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 
      Intent myIntent2 = new Intent(view.getContext(), Password.class); 
      startActivityForResult(myIntent2, 0); 
     } 

    }); 


    SQLiteDatabase db = openOrCreateDatabase("passmanage", MODE_PRIVATE, null); 
    Cursor c = db.rawQuery("select * from password", null); 
    c.moveToFirst(); 
    if(c!=null) 
    { 
     setting = (Button)findViewById(R.id.button3); 
     setting.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent3 = new Intent(view.getContext(), Password.class); 
       startActivityForResult(myIntent3, 0); 
      } 

     }); 
    } 

    else 
    { 
     setting = (Button)findViewById(R.id.button3); 
     setting.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent3 = new Intent(view.getContext(), Setting.class); 
       startActivityForResult(myIntent3, 0); 
      } 

     }); 
    } 


} 

}

я пытался таким образом слишком-

setting = (Button)findViewById(R.id.button3); 
    setting.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 

     SQLiteDatabase db = openOrCreateDatabase("passmanage", MODE_PRIVATE, null); 
    Cursor c = db.rawQuery("select * from password", null); 
    c.moveToFirst(); 
    if(c!=null) 
    { 
     Intent myIntent3 = new Intent(view.getContext(), Password.class); 
     startActivityForResult(myIntent3, 0); 
    } 

    else 
    { 
     Intent myIntent3 = new Intent(view.getContext(), Setting.class); 
     startActivityForResult(myIntent3, 0); 
    } 

     }}); 

но и здесь я получаю сообщение об ошибке, как мертвый код еще условия.

я пытался таким образом также

setting = (Button)findViewById(R.id.button3); 
    setting.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 

    SQLiteDatabase db = openOrCreateDatabase("passmanage", MODE_PRIVATE, null); 
    Cursor c = db.rawQuery("select * from password", null); 
    c.moveToFirst(); 
    if(c!=null) 
    { 
     do 
     { 
      pass1 = c.getString(c.getColumnIndex("pass")); 
      pass2 = c.getString(1); 

     } while(c.moveToNext()); 

     if(pass1.compareTo("")==0 && pass2.compareTo("")==0) 
     { 
      Intent myIntent3 = new Intent(view.getContext(), Password.class); 
      startActivityForResult(myIntent3, 0); 
     } 
     else 
     { 
      Intent myIntent3 = new Intent(view.getContext(), Setting.class); 
      startActivityForResult(myIntent3, 0); 
     } 

    } 

     }}); 

но получать закрыт неожиданно!

У меня есть еще одно небольшое сомнение. мне нужно создать намерение с другим именем для разных кнопок в одной и той же деятельности?

ответ

0

Ваш c c c не будет пустым. Если бы это было, вы получили бы nullpointerexception на c.moveToFirst(). Вам нужно проверить, есть ли у него данные.

+0

Вы хотите сказать, что я должен проверить, что таблица имеет данные? – Abb

+0

эй, я тоже так старался. он неожиданно закрывается. – Abb

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