Android Studio App

A

Andy12345678

Ambitioniertes Mitglied
1
Hallo,

ich bin dabei eine App zu entwickeln, mit der man chatten kann, so wie WhatsApp.

Ich komme da leider nicht weiter. Ich habe Firebase zu meinem Projekt hinzugefügt. Beim Adapter umkringelt er mir in rot "context".


Also das Wort (context) ist leider bei mir rot umkringelt:

View view = LayoutInflater.from(context).inflate(R.layout.sample_show_user, parent, false);


Wenn ich das Projekt starte, kommt diese Fehlermeldung:
error: incompatible types: com.google.firebase.database.core.Context cannot be converted to android.content.Context

View view = LayoutInflater.from(context).inflate(R.layout.sample_show_user, parent, false);
^



Ich gebe hier mal meinen Quellcode von mein UsersAdapter:

Code:
public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.ViewHolder> {
    
    
        ArrayList<Users> list;
        Context context;
    
        public UsersAdapter(ArrayList<Users> list, Context context) {
            this.list = list;
            this.context = context;
        }
    
    
        @NonNull
        [USER=3517]@override[/USER]
        public  ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    
            View view = LayoutInflater.from(context).inflate(R.layout.sample_show_user, parent, false);
            //LayoutInflater.from(parent.context).inflate(R.layout.sample_show_user, parent, false)
    
            return new ViewHolder(view);
        }
    
        [USER=3517]@override[/USER]
        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    
            Users users = list.get(position);
    
        }
    
        [USER=3517]@override[/USER]
        public int getItemCount() {
            return 0;
        }
    
        public class ViewHolder extends RecyclerView.ViewHolder {
    
            ImageView image;
            TextView userName, lastMessage;
    
    
            public ViewHolder(@NonNull View itemView) {
                super(itemView);
    
                image = itemView.findViewById(R.id.profile_image);
                userName = itemView.findViewById(R.id.userNamelist);
                lastMessage = itemView.findViewById(R.id.lastMessage);
    
            }
        }
    }
Kann mir da jemand weiter helfen? Ich wäre sehr dankbar.
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: nik - Grund: Schwarze Schrift für den Darkmode entfernt und Quellcode in Code-Tags gesetzt, Gruß nik
@jogimuc

Hallo,
ich habe dies so gemacht:

//@NonNull
@override
//public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {


//View view = LayoutInflater.from(context).inflate(R.layout.sample_show_user, parent, false);
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.sample_show_user, viewGroup, false);


return new ViewHolder(view);
}


und bekomme da leider auch eine Fehlermeldung:
Cannot fit requested classes in a single dex file (# methods: 65734 > 65536).

Kann das vielleicht sein, das ich in der MainActivity was vergessen habe zu schreiben? Dieser UserAdapter ist noch nicht fertig, aber ich wollte dies schon mal testen, um zu sehen ob es bis dahin schon mal klappt.
 
View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.sample_show_user , parent, false);
 
Zuletzt bearbeitet:
@jogimuc

Da ist leider die gleiche Fehlermeldung (siehe Screenshot)
 

Anhänge

  • MyProject.PNG
    MyProject.PNG
    123,9 KB · Aufrufe: 120
Mit deinem Gradle deinen Projekt stimmt was nicht.

War das ein neues Projekt oder ein fertiges aus dem Netz.
Beiträge automatisch zusammengeführt:

der Fehler hat nichts mit der Klasse zu tun.
 
Zuletzt bearbeitet:
Ich habe das alles selbst geschrieben. Die Anleitung zur Chat App aus einem Youtube Video und in dem Video funktiert es. Was muss ich an meinem Gradle ändern?
Beiträge automatisch zusammengeführt:

@jogimuc

So sieht mein Gradle aus (siehe Screenshot)
 

Anhänge

  • Gradle.PNG
    Gradle.PNG
    147,4 KB · Aufrufe: 123
Zuletzt bearbeitet:
@jogimuc

Also meine minSDK Version ist API 16: Android 4.1 (Jelly Bean) siehe Screenshot
 

Anhänge

  • minSDK.PNG
    minSDK.PNG
    75,7 KB · Aufrufe: 123
Dann weißt du ja jetzt den Fehler wenn du meinen link anschaust.


Benutze größer als 22.
 
Zuletzt bearbeitet:
Das Danke über PM ist nett.
Aber hier wäre es sinnvoller auch für andere User.
Wenn es zum Ziel geführt hat. 🙂
 
@jogimuc

Es hat geklappt und als ich dort weiter gearbeitet habe, habe ich gesehen, das jetzt ein ähnliches Problem unter ChatsFragment gibt.

UsersAdapter adapter = new UsersAdapter(list , getContext());

Also das Wort getContext ist rot umkringelt.

Muss ich dort ein Wort hinzufügen oder ?
 

Anhänge

  • ChatsFragment.PNG
    ChatsFragment.PNG
    60,2 KB · Aufrufe: 111
Nur getContext() ohne den Bezug zu einer lnstanz geht nicht.
GetContext ist eine Methode von View.


Was für einen Context willst du den übergeben? Den vom Fragment oder von der dazugehörigen Activity?
Für was brauchst du in der Klasse den Context?
 
Zuletzt bearbeitet:
@jogimuc
Also ich möchte den von Fragment übergeben.
Beiträge automatisch zusammengeführt:

Ich weiß leider auch nicht für was ich in der Klasse den Context brauche. Ich habe dies so gemacht wie in dem Youtube Video
 

Anhänge

  • context.PNG
    context.PNG
    83,8 KB · Aufrufe: 118
Zuletzt bearbeitet:
Einfach nur getContext wird in dem Video nicht gewesen sein.
Dann benutze einfach this wenn du es sowieso nicht brauchst.

Interessant wäre wo und für was der Context in der Klasse UsersAdapter
benutzt wird. In dem Code vom ersten post wird das nicht benutzt. Wenn das die komplette Klasse ist die du uns gegeben hast.

Wenn du das Video abtippst dann schaue genau hin. War und ist bestimmt nicht so.
 
Zuletzt bearbeitet:
Ich habe dies so abgetippt wie in dem Video
 

Anhänge

  • video.PNG
    video.PNG
    858,3 KB · Aufrufe: 111
  • video2.PNG
    video2.PNG
    705,8 KB · Aufrufe: 112
Ich habe jetzt nochmal in der Doku nachgeschaut "getContext()" sollte es im Fragment geben. Wenn es bei dir nicht gefunden wird.
stimmt was mit deinen Imports nicht.
 
@jogimuc

Das sind meine ganzen Imports
 

Anhänge

  • Imports.PNG
    Imports.PNG
    92,7 KB · Aufrufe: 129
Keine Ahnung warum er bei dir die Methode rot unterstrichen ist. Welche Fehlermeldung kommt denn überhaupt.
Und was bidet dir AS an wenn du alt enter drückst?
 
Wenn ich alt enter drücke, bietet AS mir Create Constructur an. Wenn ich dies mache, weiß ich leider nicht was ich dort:

public UsersAdapter(ArrayList<Users> list, android.content.Context context) {
}

rein schreiben soll. Oder muss ich dort nix rein schreiben?
 

Anhänge

  • constructur.PNG
    constructur.PNG
    6,6 KB · Aufrufe: 111
  • Create.png
    Create.png
    122,2 KB · Aufrufe: 112

Ähnliche Themen

D
Antworten
23
Aufrufe
2.312
Data2006
D
5
Antworten
0
Aufrufe
1.104
586920
5
SaniMatthias
Antworten
19
Aufrufe
858
swa00
swa00
Zurück
Oben Unten