2017-04-13 6 views
0

In meiner Android-App versuche ich, Client-Profile zu meiner Firebase-Datenbank hinzuzufügen, indem ich Felder ausfülle und ein paar Ankreuzfelder anklicke und dann auf die Schaltfläche Speichern klicke. Ich habe die Eingabe des Benutzers erfolgreich zu den Textfeldern der Datenbank hinzugefügt, aber es fügt CheckBox-Wert nicht hinzu (ob es aktiviert ist oder nicht). Ich vermute, das liegt daran, dass ich sie als String definiert habe und versucht habe, 'Text' zu bekommen. Ich bin ziemlich neu und ich bin mir nicht sicher, wie ich es sonst machen würde. Ich habe mir eine Art IF-Statement überlegt, aber ich bin nicht 100% ig.Wie fügt man den CheckBox-Wert zur Datenbank hinzu?

Jede Hilfe würde sehr geschätzt werden, danke Jungs.

Mein Code scheint lang, aber es ist nur eine Menge Erklärungen aha!

AddAProfile.java Code:

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.text.TextUtils; 
import android.view.View; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.ImageButton; 
import android.widget.Toast; 

import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

import org.w3c.dom.Text; 

public class AddProfileActivity extends AppCompatActivity { 

    EditText etName; 
    EditText etCareer; 
    CheckBox cbTech; 
    CheckBox cbMedi; 
    CheckBox nfRenewableEnergy; 
    CheckBox nfGoogle; 
    CheckBox cfNovartis; 
    CheckBox nfTesla; 
    CheckBox lrsFB; 
    CheckBox lrsAAPL; 
    CheckBox lrsYHOO; 
    CheckBox cbEURUSD; 
    CheckBox lrcuUSDRUB; 
    CheckBox lrcoSILVER; 
    CheckBox lrcoGOLD; 
    CheckBox lrcuGBPUSD; 
    CheckBox lriNSDQ; 
    CheckBox lriSP500; 
    Button bSave; 

    DatabaseReference databaseClients; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_profile); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     databaseClients = FirebaseDatabase.getInstance().getReference("clients"); 

     etName = (EditText) findViewById(R.id.etName); 
     etCareer = (EditText) findViewById(R.id.etCareer); 
     cbTech = (CheckBox) findViewById(R.id.cbTech); 
     cbMedi = (CheckBox) findViewById(R.id.cbMedi); 
     nfRenewableEnergy = (CheckBox) findViewById(R.id.nfRenewableEnergy); 
     nfGoogle = (CheckBox) findViewById(R.id.nfGoogle); 
     cfNovartis = (CheckBox) findViewById(R.id.cfNovartis); 
     nfTesla = (CheckBox) findViewById(R.id.nfTesla); 
     lrsFB = (CheckBox) findViewById(R.id.lrsFB); 
     lrsAAPL = (CheckBox) findViewById(R.id.lrsAAPL); 
     lrsYHOO = (CheckBox) findViewById(R.id.lrsYHOO); 
     cbEURUSD = (CheckBox) findViewById(R.id.cbEURUSD); 
     lrcuUSDRUB = (CheckBox) findViewById(R.id.lrcuUSDRUB); 
     lrcoSILVER = (CheckBox) findViewById(R.id.lrcoSILVER); 
     lrcoGOLD = (CheckBox) findViewById(R.id.lrcoGOLD); 
     lrcuGBPUSD = (CheckBox) findViewById(R.id.lrcuGBPUSD); 
     lriNSDQ = (CheckBox) findViewById(R.id.lriNSDQ); 
     lriSP500 = (CheckBox) findViewById(R.id.lriSP500); 
     bSave = (Button) findViewById(R.id.bSave); 

     bSave.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View view){ 
       bSave(); 

      } 
     }); 



    } 

    private void bSave(){ 
     String name = etName.getText().toString().trim(); 
     String career = etCareer.getText().toString().trim(); 
     String techCB = cbTech.getText().toString(); 
     String mediCB = cbMedi.getText().toString(); 
     String renewableEnergyNF = nfRenewableEnergy.getText().toString(); 
     String googleNF = nfGoogle.getText().toString(); 
     String novartisNF = cfNovartis.getText().toString(); 
     String teslaNF = nfTesla.getText().toString(); 
     String fbLRS = lrsFB.getText().toString(); 
     String applLRS = lrsAAPL.getText().toString(); 
     String yhooLRS = lrsYHOO.getText().toString(); 
     String eurusdCB = cbEURUSD.getText().toString(); 
     String usdrubCU = lrcuUSDRUB.getText().toString(); 
     String silverCO = lrcoSILVER.getText().toString(); 
     String goldCO = lrcoGOLD.getText().toString(); 
     String gbpusdCU = lrcuGBPUSD.getText().toString(); 
     String nsdqI = lriNSDQ.getText().toString(); 
     String sp500I = lriSP500.getText().toString(); 


     if(!TextUtils.isEmpty(name)){ 
      String id = databaseClients.push().getKey(); 

      Clients clients = new Clients(id, name, career, techCB, mediCB, renewableEnergyNF, googleNF, 
        novartisNF, teslaNF, fbLRS, applLRS, yhooLRS, eurusdCB, usdrubCU, silverCO, 
        goldCO, gbpusdCU, nsdqI, sp500I); 

      databaseClients.child(id).setValue(clients); 

      Toast.makeText(this, "Client added", Toast.LENGTH_LONG).show(); 

     }else{ 
      Toast.makeText(this, "Please enter your name", Toast.LENGTH_LONG).show(); 

     } 


    } 

} 

Clients.java:

/** 
* Created by Joe on 13/04/2017. 
*/ 

public class Clients { 

    String clientName; 
    String clientCareer; 
    String techCB; 
    String mediCB; 
    String renewableEnergyNF; 
    String googleNF; 
    String novartisNF; 
    String teslaNF; 
    String fbLRS; 
    String applLRS; 
    String yhooLRS; 
    String eurusdCB; 
    String usdrubCU; 
    String silverCO; 
    String goldCO; 
    String gbpusdCU; 
    String nsdqI; 
    String sp500I; 


    public Clients(String id, String name, String career, String techCB, String mediCB, String renewableEnergyNF, String googleNF, String novartisNF, String teslaNF, String fbLRS, String applLRS, String yhooLRS, String eurusdCB, String usdrubCU, String silverCO, String goldCO, String gbpusdCU, String nsdqI, String sp500I){ 

    } 

    public Clients(String clientCareer, String clientName, String techCB,String mediCB, String renewableEnergyNF, 
        String googleNF, String novartisNF, String teslaNF,String fbLRS, String applLRS, String yhooLRS, String eurusdCB, 
        String usdrubCU, String silverCO, String goldCO, String gbpusdCU, String nsdqI, String sp500I) { 

     this.clientName = clientName; 
     this.clientCareer = clientCareer; 
     this.techCB = techCB; 
     this.mediCB = mediCB; 
     this.renewableEnergyNF = renewableEnergyNF; 
     this.googleNF = googleNF; 
     this.novartisNF = novartisNF; 
     this.teslaNF = teslaNF; 
     this.fbLRS = fbLRS; 
     this.applLRS = applLRS; 
     this.yhooLRS = yhooLRS; 
     this.eurusdCB = eurusdCB; 
     this.usdrubCU = usdrubCU; 
     this.silverCO = silverCO; 
     this.goldCO = goldCO; 
     this.gbpusdCU = gbpusdCU; 
     this.nsdqI = nsdqI; 
     this.sp500I = sp500I; 
    } 

    public String getClientName() { 
     return clientName; 
    } 

    public String getClientCareer() { 
     return clientCareer; 
    } 

    public String getTechCB() { 
     return techCB; 
    } 

    public String getMediCB() { 
     return mediCB; 
    } 

    public String getRenewableEnergyNF() { 
     return renewableEnergyNF; 
    } 

    public String getGoogleNF() { 
     return googleNF; 
    } 

    public String getNovartisNF() { 
     return novartisNF; 
    } 

    public String getTeslaNF() { 
     return teslaNF; 
    } 

    public String getFbLRS() { 
     return fbLRS; 
    } 

    public String getApplLRS() { 
     return applLRS; 
    } 

    public String getYhooLRS() { 
     return yhooLRS; 
    } 

    public String getEurusdCB() { 
     return eurusdCB; 
    } 

    public String getUsdrubCU() { 
     return usdrubCU; 
    } 

    public String getSilverCO() { 
     return silverCO; 
    } 

    public String getGoldCO() { 
     return goldCO; 
    } 

    public String getGbpusdCU() { 
     return gbpusdCU; 
    } 

    public String getNsdqI() { 
     return nsdqI; 
    } 

    public String getSp500I() { 
     return sp500I; 
    } 
} 
+1

Sie meinen, wollen Sie Daten als Boolen in Firebase setzen Keine Zeichenfolge – Elsunhoty

+0

Mein Gott ... warum all das Code? Sie benötigen nur eine Zeichenfolge anstelle der booleschen isChecked(). Also String checkBox1Checked = checkBox1.isChecked()? "wahr falsch"; – greenapps

Antwort

1

Checkboxen nur zwei Zustände haben - geprüft und ungeprüft, das heißt true und false. Daher haben Sie recht, wenn Sie sagen, ein String ist kein geeigneter Datentyp zum Speichern von Informationen, die von einer CheckBox gegeben werden. Was Sie wollen, ist ein boolean.

Sie sollten CheckBoxes als boolean Werte behandeln (die isChecked() Methode, die jede CheckBox hat, wird wahrscheinlich nützlich sein), und speichern Sie sie als solche, und Sie sollten gut gehen.

+0

Vielen Dank! Dummer Fehler, ich werde mich bestimmt für das nächste Mal erinnern, haha. Prost nochmal. – Joe

Verwandte Themen