2017-06-22 2 views
-2

Ich weiß, dass diese Frage oft gestellt wird, aber ich konnte nicht meinen Kopf drumherum und ich möchte Daten von Fire Base zu zweiten Aktivität und nicht zuerst und ich habe keine Klasse aber Es ist einfach Text zu bearbeiten, also wenn Leute füllen und klicken Sie auf Text bearbeiten wird der Text auf Firebase gespeichert und Listview auf zweite Aktivität wird mit Firebase Daten bevölkern danke, und ich will nicht Listview in Haupttätigkeit sein, aber ich möchte sein in der zweiten Aktivität, die nur Listview enthalten. HierFüllen Sie Listview in der zweiten Aktivität von firebase

ist mein Code,

public class MainActivity extends AppCompatActivity { 
    EditText ed; 
     Button b,b2; 
     ArrayList<String>aded; 
     String save,pus; 
     // Write a message to the database 
     FirebaseDatabase database ; 
     DatabaseReference myRef ; 
     DatabaseReference ref; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      ed=(EditText)findViewById(R.id.ed1); 
      b=(Button)findViewById(R.id.b1); 
      b2=(Button)findViewById(R.id.b2); 
      database = FirebaseDatabase.getInstance(); 
      myRef = database.getReference("message"); 
      ref=database.getReference("Oslan"); 



    b2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      save= ed.getText().toString(); 
      if(!TextUtils.isEmpty(save)) { 
       pus = ref.push().getKey(); 
       ref.child(pus).setValue(save); 
       //myRef.setValue(save); 
      }else{ 
       Toast.makeText(getApplicationContext(),"put name",Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
      // databaseArtist=FirebaseDatabase.getInstance().getReference("artist"); 

      aded=new ArrayList<>(); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      save= ed.getText().toString(); 
      aded.add(save); 
      if(!TextUtils.isEmpty(save)) { 
       pus = myRef.push().getKey(); 
       myRef.child(pus).setValue(save); 
       //myRef.setValue(save); 
       }else{ 
       Toast.makeText(getApplicationContext(),"put name",Toast.LENGTH_LONG).show(); 
      } 
      Intent i=new Intent(getApplicationContext(),Listview.class); 
      i.putStringArrayListExtra("n",aded); 
      startActivity(i); 
     } 
    }); 
     } 


    } 




    public class Listview extends AppCompatActivity { 
    ListView listi; 
     ArrayList<String>items; 
    ArrayAdapter<String>adapt; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_listview); 
      listi=(ListView)findViewById(R.id.l1); 
      items=new ArrayList<>(); 
      Intent gett=getIntent(); 
      items=gett.getStringArrayListExtra("n"); 
      adapt=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items); 
      listi.setAdapter(adapt); 
     } 


    } 

und Liste Aktivitätscode ist unter Dank für Hilfe

public class Listview extends AppCompatActivity { 
    ListView listi; 
     ArrayList<String>items; 
    ArrayAdapter<String>adapt; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_listview); 
      listi=(ListView)findViewById(R.id.l1); 
      items=new ArrayList<>(); 
      Intent gett=getIntent(); 
      items=gett.getStringArrayListExtra("n"); 
      adapt=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items); 
      listi.setAdapter(adapt); 
     } 


    } 
+0

kämpfte Was hast du bis jetzt getan/versucht? –

+0

ich habe meinen Code hinzugefügt danke – SeekingKnowleges

Antwort

0

Sie können sowohl Ihre Aktivitäten einen Verweis auf den Datenbankknoten erhalten. Fügen Sie diese auf beide Ihre Aktivitäten:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("name_of_child"); 

Dann in Ihrer ersten Aktivität:

databaseReference.setValue(editText.getText().toString()); 

In Ihrer zweiten Aktivität:

String name; 

databaseReference.addValueEventListener(new ValueEventListener) 
    { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
     //get value from snapshot 
     name = dataSnapshot.getValue(String.class); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     //Log the error 
    } 

}

+0

danke krishna, aber ich habe keine Klasse es ist einfach zu bearbeiten Text ich weiß nicht, wie es geht, bitte sehen Sie meine Codes ich fügte hinzu, danke – SeekingKnowleges

+1

Ich bin mir nicht sicher, ich verstehe, was Sie meinen " Ich habe keine Klasse " –

+0

Ich habe keine Klasse wie zum Beispiel Benutzerklasse, wo Sie den Namen des Benutzers speichern, alles, was ich habe, ist 2 Aktivitäten und 2 Layout mit Aktivitäten verbunden, in der Haupttätigkeit habe ich Button, wenn Leute auf bearbeiten eingeben Text und klicken Sie auf die Schaltfläche, fügt die Schaltfläche den Text bearbeiten Wert zur Listenansicht in secon Aktivität und Firebase aber was ich brauche ist, wenn die Leute klicken, dann werden die Daten auf Firebase gespeichert, das ist einfach Teil kein Problem, aber jetzt will ich alle Daten auf der Feuerbasis werden auf listview in der zweiten Tätigkeit befüllt – SeekingKnowleges

-1
public void onDataChange(DataSnapshot dataSnapshot) { 
    for(DataSnapshot dt:dataSnapshot.getChildren()){ 
     name = dt.getValue(String.class); 
     items.add(name); 
    } adapt=new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_list_item_1,items); 
    listi.setAdapter(adapt); 
} 

danke Krishan hat meine Frage beantwortet dass ich mit

+0

hallo ich habe meine neue frage hinzugefügt hier, ich schätze es, wenn Sie die Antwort kennen https://stackoverflow.com/questions/44700447/when-click-on-listview-delete-it-and-delet-associated-data-with-it-in-firebase – SeekingKnowleges

Verwandte Themen