【问题标题】:error: constructor FirebaseListAdapter in class FirebaseListAdapter<T> cannot be applied to given types;错误:类 FirebaseListAdapter<T> 中的构造函数 FirebaseListAdapter 不能应用于给定类型;
【发布时间】:2018-04-01 15:00:23
【问题描述】:

错误:类 FirebaseListAdapter 中的构造函数 FirebaseListAdapter 不能应用于给定类型;必需的: 找到 FirebaseListOptions: MainActivity,Class,int,DatabaseReference 原因:实际 和形式参数列表的长度不同,其中 T 是类型变量: T 扩展类 FirebaseListAdapter 中声明的 Object

我的代码:

adapter = new FirebaseListAdapter<ChatMessage>(this, ChatMessage.class,
                R.layout.message, 
FirebaseDatabase.getInstance().getReference()) 
{
            @Override
 protected void populateView(View v, ChatMessage model, int position) {

       // Get references to the views of message.xml
               TextView messageText = 
(TextView)v.findViewById(R.id.message_text);
                TextView messageUser = 
(TextView)v.findViewById(R.id.message_user);
                TextView messageTime = 
(TextView)v.findViewById(R.id.message_time);

            // Set their text
            messageText.setText(model.getMessageText());
            messageUser.setText(model.getMessageUser());

            // Format the date before showing it
            messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
                    model.getMessageTime()));
        }
    };

      listOfMessages.setAdapter(adapter);
}

我拥有最新的谷歌服务 n 存储库。 并导入所有语句:

import com.firebase.ui.auth.AuthUI;
import com.firebase.ui.database.FirebaseListAdapter;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.firebase.ui.database.FirebaseListOptions;
import com.google.android.gms.tasks.OnCompleteListener;

这里是 Build.gradle

    //add library
    implementation 'com.android.support:design:25.0.1'
    implementation 'com.firebaseui:firebase-ui:3.3.0'
    implementation 'com.google.firebase:firebase-core:12.0.1'
    implementation 'com.google.firebase:firebase-database:12.0.1'
    implementation 'com.google.firebase:firebase-auth:12.0.1'

    // FirebaseUI for Firebase Realtime Database
    implementation 'com.firebaseui:firebase-ui-database:3.3.0'

帮我解决 firebaseadapter 上的这个错误。

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

我有你完整的解决方案。我现在有脸,我用一些库版本解决了它。我希望这对你也有用。

首先是依赖项下的所有用户,

implementation 'com.firebase:firebase-client-android:2.5.1'
implementation 'com.firebaseui:firebase-ui:0.3.1' 

导入

import com.firebase.client.Firebase;
import com.firebase.ui.FirebaseListAdapter;

主要代码

public class MainActivity extends AppCompatActivity {

    Firebase rootRef;
    FirebaseListAdapter<ChatMessage> mListAdapter;
    EditText mEditText;
    ListView listView;
    String username;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mEditText = (EditText) findViewById(R.id.message);
        listView = (ListView) findViewById(R.id.list);

        username = getUsername();

        Firebase.setAndroidContext(this);
        rootRef = new Firebase("<Reference url>");

        mListAdapter = new FirebaseListAdapter<com.example.dev_ramiz_1707.testfirebase.ChatMessage>(this, com.example.dev_ramiz_1707.testfirebase.ChatMessage.class,
                android.R.layout.two_line_list_item, rootRef) {
            @Override
            protected void populateView(View v, com.example.dev_ramiz_1707.testfirebase.ChatMessage model, int position) {
                ((TextView)v.findViewById(android.R.id.text1)).setText(model.getName());
                ((TextView)v.findViewById(android.R.id.text2)).setText(model.getText());
            }
        };
        listView.setAdapter(mListAdapter);

    }


    public void onClick(View v) {
        String text = mEditText.getText().toString();
        com.example.dev_ramiz_1707.testfirebase.ChatMessage message = new com.example.dev_ramiz_1707.testfirebase.ChatMessage(username, text);
        rootRef.push().setValue(message);
        mEditText.setText("");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mListAdapter.cleanup();
    }

    public String getUsername() {

        SharedPreferences sharedPref = MainActivity.this.getPreferences(Context.MODE_PRIVATE);
        String Username = sharedPref.getString("username","User-Name");
        return Username;

    }

}

不要只是复制这段代码,还要了解它是如何工作的。

在您的代码中有更新的库,并且在更新的库中有不包含 FirebaseListAdapter 的新类。这就是为什么你需要放置单独的 firebase 库。

如果您不知道如何创建参考网址,请按照以下步骤操作:- Where can I find my Firebase reference URL in Firebase account?

我希望这对你有更好的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2019-10-05
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多