首页 > 解决方案 > 如何通过firebase实时数据库在android studio的textview中指定其中一个来从一组数据中检索特定数据?

问题描述

我想通过在 textview 中指定其兄弟的数据来检索数据,请有人帮助我如何处理它,下面提供了代码和 JSON 树。我已经通过直接指定适用于单次检索的多组数据的数据路径来检索我失败了,我试图将 TextView 传递给 stingview 并在我也失败的路径中调用它。

public class smartphone extends AppCompatActivity {
    Button fetch,accept;
    TextView content;
    EditText one,two;
    DatabaseReference rootRef,demoRef;
    LinearLayout layout1,layout2;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_smartphone);
    getSupportActionBar().setTitle("Smartphone details");
        final LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
        layout1.setVisibility(View.VISIBLE);
        final LinearLayout layout2 = (LinearLayout) findViewById(R.id.layout2);
        layout2.setVisibility(View.GONE);
    fetch=(Button) findViewById(R.id.fetchDocument);
    fetch.setVisibility(View.VISIBLE);
    accept=(Button)findViewById(R.id.button2);
    content=(TextView) findViewById(R.id.content);
    one=(EditText) findViewById(R.id.one);
    two=(EditText) findViewById(R.id.two);
    String brand="";
    rootRef = FirebaseDatabase.getInstance().getReference();
    demoRef = rootRef.child("mobile/samsung/j7/");
    demoref1=demoRef.getRoot().equalTo(one.getText().toString());
    fetch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = one.getText().toString().trim();
            String model = two.getText().toString().trim();
            if (TextUtils.isEmpty(name)&&TextUtils.isEmpty(model)) {
                Toast.makeText(smartphone.this, "Please Enter Make and Model", Toast.LENGTH_SHORT).show();
                return;
            }
            demoRef.child("price").addListenerForSingleValueEvent(new ValueEventListener() {
            //demoref1.orderByChild("price").addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    //progressBar.setVisibility(View.VISIBLE);
                    String value = dataSnapshot.getValue(String.class);
                    content.setText(value);
                    fetch.setVisibility(View.GONE);
                    layout2.setVisibility(View.VISIBLE);
                }  
            });
        }
    });
    accept.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(getApplicationContext(), location.class));
        }
    });
}

}

在此处输入图像描述

在此处输入图像描述

标签: androidfirebasefirebase-realtime-database

解决方案


推荐阅读