-1

我不知道Firebase也不知道Arduino....但是我写了这段代码,指的是大卫·伊斯特的视频。所以我得到一个错误,请帮助我解决它。

错误是:

错误:(66, 52) 错误:没有找到适合 FirebaseListAdapter() 构造函数的构造函数 FirebaseListAdapter.FirebaseListAdapter(Activity,Class,int,Firebase) 不适用(实际参数列表和形式参数列表的长度不同)构造函数 FirebaseListAdapter.FirebaseListAdapter(Activity, Class,int,Query) 不适用(实际参数列表和形式参数列表的长度不同)

这是 MainActivity.java 的代码:

package com.example.devashish.sprout;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import com.firebase.client.ChildEventListener;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
import com.firebase.ui.FirebaseListAdapter;

import java.util.ArrayList;
import java.util.Map;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {

Firebase mRootRef;
ArrayList<String> mMessages= new ArrayList<>();

TextView mTextView;
ListView mListView;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

@Override
protected void onStart(){
    super.onStart();



    mTextView=(TextView)findViewById(R.id.textViewCondition);
    mListView=(ListView)findViewById(R.id.listView);

    mRootRef = new Firebase("https://pleaserun.firebaseio.com");
    Firebase messagesRef=mRootRef.child("condition");
    final FirebaseListAdapter<String> adapter= new FirebaseListAdapter<String>() {
        @Override
        protected void populateView(View view, String s, int i) {
            TextView textView=(TextView)view.findViewById(android.R.id.text1);
            textView.setText(s);
            mListView.setAdapter(adapter);
        }
    };



}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

我将您提到的行更改为: final FirebaseListAdapter adapter = new FirebaseListAdapter(this,String.class,android.R.layout.simple_list_item_‌​1,messagesRef)

它现在给出错误:错误:(71、38)错误:变量适配器可能尚未初始化

4

2 回答 2

0

您缺少FirebaseListAdapter. 在你的情况下可能是这样的:

final FirebaseListAdapter<String> adapter= new FirebaseListAdapter<String>(
  this,         /* the activity */
  String.class, /* the data type that you're reading from Firebase */
  android.R.layout.two_line_list_item, /* the layout for each item */
  messagesRef   /* the Query/Firebase location to read the data from */
) {
  ...

请注意,这在 FirebaseUI 存储库、相关的FirebaseUI 代码实验室或来自 Android Studio 的错误消息中都有很好的记录。

于 2016-03-26T23:07:53.867 回答
0

问题出在 firebaseui 依赖项上,使用这个

compile 'com.firebaseui:firebase-ui:0.3.1'

我有同样的问题,一旦我改变它,错误就消失了。删除您当前的 firebaselistadapter 代码并重新编写它。祝你好运

于 2016-05-30T13:50:17.487 回答