2017-06-22 69 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

相关问题