2017-06-22 58 views
-2

我知道這個問題被問了很多次,但是我無法得到我的頭,並且我想從firebase填充數據到第二個活動,而不是第一個,我沒有類但它是簡單的編輯文本,所以每當人們填寫和點擊編輯文本文本將被保存在firebase和第二次活動的listview將填充firebase數據 謝謝,我不希望listview在主要活動,但我想成爲在僅包含listview的第二個活動中。從firebase填充第二個活動的列表視圖

這裏是我的代碼,

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); 
     } 


    } 

和列表活動代碼是感謝以下的幫助

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

到目前爲止你做了什麼/嘗試過? –

+0

我加了我的代碼謝謝 – SeekingKnowleges

回答

0

你可以在這兩個你的活動數據庫節點的引用。在你的第一個活動,則

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

:這個加入到這兩個活動

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

在你的第二個活動:

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

感謝克裏希納,但我沒有上課其簡單的編輯文本我不知道該怎麼做,請看我的代碼我加了謝謝 – SeekingKnowleges

+1

我不確定我明白你的意思是「我沒有課「 –

+0

我沒有類比如用戶類存儲用戶的名稱類,我所有的是2活動和2佈局與活動相關聯,在主要活動中我有按鈕,所以當人們輸入編輯文本和點擊按鈕,該按鈕將編輯文本值添加到列表視圖secon活動和firebase,但我需要的是當人們點擊數據將被保存在firebase,這是很容易的部分沒有問題,但現在我想任何關於消防基地的數據將填充在第二項活動的列表視圖中 – 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); 
} 

謝謝克尚已經回答了我的問題我正在努力與

+0

你好我添加了我的新問題在這裏,我欣賞,如果你知道答案 https://stackoverflow.com/questions/44700447/when-click-on-listview-delete-it-and-delet-associated-data-with-it-in-firebase – SeekingKnowleges