Firebase对象下载-Android Studio

诺尔·科哈夫
public class ShowRecipe extends AppCompatActivity {

private String recipeName;
private ArrayList<Recipe> lst=new ArrayList<Recipe>();
ProgressDialog pg;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_recipe);
    getInfo();
    pg = ProgressDialog.show(this, "Loading", "please wait", true);
    databasetry();
    init();
}


public void init() {
    TextView recipeNameTV = (TextView) findViewById(R.id.show_recipe_TV);
    recipeNameTV.setText(""+lst.get(0).getRecipeName());

    CheckBox cosher = (CheckBox) findViewById(R.id.checkBoxCosher_ShowRecipe);
    CheckBox peanutes = (CheckBox) findViewById(R.id.checkBoxPeanues_ShowRecipe);
    CheckBox gloten = (CheckBox) findViewById(R.id.checkBoxGluten_ShowRecipe);

    Boolean c=lst.get(0).getCosher();
    Boolean p=lst.get(0).getPeanut();
    Boolean g=lst.get(0).getGluten();

    cosher.setChecked(c);
    peanutes.setChecked(p);
    gloten.setChecked(g);
}


private void getInfo() {
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        recipeName = extras.getString("recipeName");
    }
}

public void databasetry(){
    Firebase myFirebaseRef = new Firebase("https://recipe4u-f7470.firebaseio.com/");
    myFirebaseRef.child("Recipes").child(""+recipeName).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Recipe currentUser = dataSnapshot.getValue(Recipe.class);
            lst.add(currentUser);
            Toast.makeText(ShowRecipe.this, "Name:"+currentUser.toString(), Toast.LENGTH_LONG).show();
            pg.dismiss();
            }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
            Toast.makeText(ShowRecipe.this, "ERROR", Toast.LENGTH_SHORT).show();
        }
    });
}

}

当我对这个databasetry()动作敬酒时,它给了我一切,当将它保存为一个列表并在 init 动作中使用它时,它给了我一个错误。

仅供参考:我想以他的名字(作品)从 Firebase 下载对象,我将它下载到currentUser(作品)移动到 lst 和 toast toString() 然后我想在其中使用它init(),它给了我一个错误。我无法解决它,所以如果你能给我解决方案或关于代码的提示。

谢谢你们所有的男孩和女孩;)

凯文·奥尼尔

如果我理解正确,看起来您想在其中设置一个值,onDataChange然后在另一个代码块中使用该值。如果是这种情况,您面临的挑战是对Firebase数据库的调用是异步的,这意味着您无法确定何时onDataChange将被调用,然后知道使用onDataChange.

尝试将您的呼叫init()onCreate转到onDataChange

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_recipe);
    getInfo();
    pg = ProgressDialog.show(this, "Loading", "please wait", true);
    databasetry();
}

public void databasetry(){
    Firebase myFirebaseRef = new Firebase("yourFirebaseURL");
    myFirebaseRef.child("Recipes").child(""+recipeName).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Recipe currentUser = dataSnapshot.getValue(Recipe.class);
            lst.add(currentUser);
            Toast.makeText(ShowRecipe.this, "Name:"+currentUser.toString(), Toast.LENGTH_LONG).show();
            pg.dismiss();
            init();
            }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
            Toast.makeText(ShowRecipe.this, "ERROR", Toast.LENGTH_SHORT).show();
        }
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Studio Firebase updateChildren

来自分类Dev

Android Studio Gradle下载错误

来自分类Dev

在哪里下载Android Studio?

来自分类Dev

Android Studio可绘制对象

来自分类Dev

Android Studio,向后发送对象

来自分类Dev

从Firebase Android Studio检索数据

来自分类Dev

在 Android Studio 中从 Firebase 检索

来自分类Dev

Java Android Studio 和 Firebase

来自分类Dev

无法更新Android Studio-仅下载

来自分类Dev

Android Studio无法建立下载的项目

来自分类Dev

Android Studio Gradle依赖库下载网址

来自分类Dev

Android Studio-无法下载工件

来自分类Dev

无法在Android Studio中下载AppEngine SDK

来自分类Dev

Android Studio-下载Gradle 0.12.2?

来自分类Dev

Android Studio无法获取存储下载URL

来自分类Dev

无法在Android Studio中下载AppEngine SDK

来自分类Dev

无法在Android Studio中下载HTML

来自分类Dev

从Android Studio调试器导出对象

来自分类Dev

Google Firebase身份验证Android Studio

来自分类Dev

使用Userid Firebase Android Studio创建注释

来自分类Dev

从Firebase检索孩子的信息回到android studio

来自分类Dev

无法在 Android Studio 中构建 firebase gradle

来自分类Dev

Android Studio 中的 Firebase 后端代码排列

来自分类Dev

Android Studio Firebase Recyclerview 升级错误

来自分类Dev

android studio中的firebase数据更改方法

来自分类Dev

Android Studio:重新下载依赖项并同步项目

来自分类Dev

如何在首次运行的Android Studio中禁用下载组件

来自分类Dev

强制Android Studio下载并安装gradle 1.10或1.1

来自分类Dev

Gradle坚持下载一些依赖项(Android Studio)