2016-01-22 5 views
0

Я пытаюсь сохранить базу данных, используя приведенный ниже код. Logcat показывает значения как пустые (клиент, адрес электронной почты, адрес, баланс).Pass TextView from onCreate to OptionsItemSelected

Кажется, что TextViews не передаются в метод OnOptionsItemSelected. Любая идея, как я могу передать TextViews от OnCreate до OnOptionsItemSelected?

public class NewClient extends Activity { 

    private ActionBar actionBar; 
    //private DatabaseHandler dbHelper; 
    static SimpleCursorAdapter dataAdapter; 
    private TextView client_name; 
    TextView client_code; 
    TextView email; 
    TextView addressline1; 

    TextView addressline2; 
    TextView balance; 
    ClientsFragment client = new ClientsFragment(); 
    //String carried_code; 
    //String carried_name; 
    DatabaseHandler db; 
    static Cursor cursor; 
    private TextView ObtainAdd; 
    private String ObtainAdd1; 
    private String ObtainAdd2; 
    public static TextView textViewC; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.new_client); 

     db = new DatabaseHandler(this.getApplicationContext()); 
     actionBar = getActionBar(); 
     actionBar.setHomeButtonEnabled(true); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
     // dbHelper.open(); 

     // Get the layout inflater 


     client_code = (TextView)findViewById(R.id.code_field); 

     //set 
     //get the Text-view for 
     client_name = (TextView)findViewById(R.id.client_name_field); 

     email = (TextView)findViewById(R.id.invoice_email_add_field); 

     addressline1 = (TextView)findViewById(R.id.contact_info_field); 

     balance = (TextView)findViewById(R.id.balance_field); 

     //Generate ListView from SQLite Database 
     // displayListView(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu items for use in the action bar 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.client_activity_actions, menu); 
     final View menuItemView = findViewById(R.id.action_save); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle presses on the action bar items 
     switch (item.getItemId()) { 
      case R.id.action_save: 
       openSave(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    private void openSave() { 

     String Updated_Name = client_name.getText().toString(); 
     // TextView prod_price = (TextView) newProd.findViewById(R.id.price_text); 
     String Updated_code = client_code.getText().toString(); 
     String Updated_email = email.getText().toString(); 
     String Updated_add1 = addressline1.getText().toString(); 
     String Updated_add2 = "add2";// addressline2.getText().toString(); 
     String Updated_balance = balance.getText().toString(); 
     //get double value of code 

     //updating products 

     // product.setID(position); 
     client.setClientName(Updated_Name); 
     client.setCode(Updated_code); 
     client.setEmail(Updated_email); 
     client.setAddressl1(Updated_add1); 
     client.setAddressl2(Updated_add2); 
     client.setBalance(Updated_balance); 

     //update database 
     // db.updateProduct(product); 
     db.addClient(client); 

     // db.close(); 

     // cursor.close(); 
     //cursor = db.getAllProducts(); 

     displayListView(); 

     //dataAdapter = new SimpleCursorAdapter(this, R.layout.list_entry, cursor, columns, to, 0); 
     //dataAdapter.swapCursor(NewClient.cursor); 
     //startActivity(new_client_intent); 
    } 

    private void displayListView() { 

     cursor = db.getAllClients(); 

    } 
} 

ответ

0

Я исправил его, удалив Inflater для textView из метода onCreate. Теперь он отлично работает :-)

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