Android Studio App

  • 25 Antworten
  • Neuester Beitrag
Diskutiere Android Studio App im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

Andy12345678

Ambitioniertes Mitglied
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
A

Andy12345678

Ambitioniertes Mitglied
@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.
 
J

jogimuc

Stammgast
View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.sample_show_user , parent, false);
 
Zuletzt bearbeitet:
A

Andy12345678

Ambitioniertes Mitglied
@jogimuc

Da ist leider die gleiche Fehlermeldung (siehe Screenshot)
 

Anhänge

J

jogimuc

Stammgast
Mit deinem Gradle deinen Projekt stimmt was nicht.

War das ein neues Projekt oder ein fertiges aus dem Netz.
Beitrag automatisch zusammengefügt:

der Fehler hat nichts mit der Klasse zu tun.
 
Zuletzt bearbeitet:
A

Andy12345678

Ambitioniertes Mitglied
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?
Beitrag automatisch zusammengefügt:

@jogimuc

So sieht mein Gradle aus (siehe Screenshot)
 

Anhänge

Zuletzt bearbeitet:
A

Andy12345678

Ambitioniertes Mitglied
@jogimuc

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

Anhänge

J

jogimuc

Stammgast
Dann weißt du ja jetzt den Fehler wenn du meinen link anschaust.


Benutze größer als 22.
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Das Danke über PM ist nett.
Aber hier wäre es sinnvoller auch für andere User.
Wenn es zum Ziel geführt hat. 🙂
 
A

Andy12345678

Ambitioniertes Mitglied
@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

J

jogimuc

Stammgast
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:
A

Andy12345678

Ambitioniertes Mitglied
@jogimuc
Also ich möchte den von Fragment übergeben.
Beitrag automatisch zusammengefügt:

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

Zuletzt bearbeitet:
J

jogimuc

Stammgast
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:
A

Andy12345678

Ambitioniertes Mitglied
Ich habe dies so abgetippt wie in dem Video
 

Anhänge

J

jogimuc

Stammgast
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.
 
A

Andy12345678

Ambitioniertes Mitglied
@jogimuc

Das sind meine ganzen Imports
 

Anhänge

J

jogimuc

Stammgast
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?
 
A

Andy12345678

Ambitioniertes Mitglied
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

Ähnliche Themen - Android Studio App Antworten Datum
6
2
3