Android 有人知道如何申请吗;我加上了“;API级别29或更高?
我正试图在一些教程的帮助下修复我正在开发的应用程序中的一个错误,在这些视频中,人们分享了我的错误,并使用“isAdded()”找到了答案,但我的问题是,我使用的是API级别29,在官方网站上说,这在级别28中被弃用。我不想将我的项目目标更改为API级别28,因为这可能会使它崩溃,所以有人知道我如何解决这个问题吗 它应该是这样的,isAdded以红色突出显示Android 有人知道如何申请吗;我加上了“;API级别29或更高?,android,android-fragments,Android,Android Fragments,我正试图在一些教程的帮助下修复我正在开发的应用程序中的一个错误,在这些视频中,人们分享了我的错误,并使用“isAdded()”找到了答案,但我的问题是,我使用的是API级别29,在官方网站上说,这在级别28中被弃用。我不想将我的项目目标更改为API级别28,因为这可能会使它崩溃,所以有人知道我如何解决这个问题吗 它应该是这样的,isAdded以红色突出显示 public class MessageActivity extends AppCompatActivity { CircleImageV
public class MessageActivity extends AppCompatActivity {
CircleImageView profile_image;
TextView username;
FirebaseUser fuser;
DatabaseReference reference;
ImageButton button_send;
EditText text_sent;
MessageAdapter messageAdapter;
List<Chat> mchat;
RecyclerView recyclerView;
Intent intent;
ValueEventListener seenListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_message);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MessageActivity.this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
//finish();
}
});
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
profile_image = findViewById(R.id.profile_image);
username = findViewById(R.id.username);
button_send = findViewById(R.id.button_send);
text_sent = findViewById(R.id.text_sent);
intent = getIntent();
final String userid = intent.getStringExtra("userid");
fuser = FirebaseAuth.getInstance().getCurrentUser();
button_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String msg = text_sent.getText().toString();
if (!msg.equals("")) {
sendMessage(fuser.getUid(), userid, msg);
}
else {
Toast.makeText(MessageActivity.this, "You can´t send empty messages", Toast.LENGTH_SHORT).show();
}
text_sent.setText("");
}
});
reference = FirebaseDatabase.getInstance().getReference("Users").child(userid);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (isAdded()) { //HERE
User user = dataSnapshot.getValue(User.class);
username.setText(user.getUsername());
if (user.getImageURL().equals("default")) {
profile_image.setImageResource(R.mipmap.ic_launcher);
}
else {
Glide.with(getApplicationContext()).load(user.getImageURL()).into(profile_image);
}
readMessages(fuser.getUid(), userid, user.getImageURL());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
seenMessage(userid);
}
private void seenMessage(final String userid) {
reference = FirebaseDatabase.getInstance().getReference("Chats");
seenListener = reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Chat chat = snapshot.getValue(Chat.class);
if (chat.getReceiver().equals(fuser.getUid()) && chat.getSender().equals(userid)) {
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("isseen", true);
snapshot.getRef().updateChildren(hashMap);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void sendMessage(String sender, String receiver, String message){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
final String userid = intent.getStringExtra("userid");
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("sender", sender);
hashMap.put("receiver", receiver);
hashMap.put("message", message);
hashMap.put("isseen", false);
reference.child("Chats").push().setValue(hashMap);
final DatabaseReference chatRef = FirebaseDatabase.getInstance().getReference("Chatlist")
.child(fuser.getUid())
.child(userid);
chatRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()) {
chatRef.child("id").setValue(userid);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void readMessages(final String myid, final String userid, final String imageurl) {
mchat = new ArrayList<>();
reference = FirebaseDatabase.getInstance().getReference("Chats");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mchat.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Chat chat = snapshot.getValue(Chat.class);
if (chat.getReceiver().equals(myid) && chat.getSender().equals(userid) ||
chat.getReceiver().equals(userid) && chat.getSender().equals(myid)) {
mchat.add(chat);
}
messageAdapter = new MessageAdapter(MessageActivity.this, mchat, imageurl);
recyclerView.setAdapter(messageAdapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void status(String status) {
reference = FirebaseDatabase.getInstance().getReference("Users").child(fuser.getUid());
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("status", status);
reference.updateChildren(hashMap);
}
@Override
protected void onResume() {
super.onResume();
status("online");
}
@Override
protected void onPause() {
super.onPause();
reference.removeEventListener(seenListener);
status("offline");
}
公共类MessageActivity扩展了AppCompatActivity{
圆形图像查看纵断面图;
文本视图用户名;
FirebaseUser定影器;
数据库参考;
图像按钮发送;
编辑文本发送;
MessageAdapter消息适配器;
列出mchat;
回收视图回收视图;
意图;
ValueEventListener-seenListener;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_消息);
Toolbar Toolbar=findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setTitle(“”);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
startActivity(新意图(MessageActivity.this,MainActivity.class).setFlags(意图.FLAG\u活动\u清除\u顶部));
//完成();
}
});
recyclerView=findViewById(R.id.recycler\u视图);
recyclerView.setHasFixedSize(true);
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(getApplicationContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
profile_image=findviewbyd(R.id.profile_image);
username=findviewbyd(R.id.username);
按钮发送=findViewById(R.id.button\u send);
text_sent=findviewbyd(R.id.text_sent);
intent=getIntent();
最终字符串userid=intent.getStringExtra(“userid”);
fuser=FirebaseAuth.getInstance().getCurrentUser();
按钮\u send.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串msg=text_sent.getText().toString();
如果(!msg.equals(“”){
sendMessage(fuser.getUid(),userid,msg);
}
否则{
Toast.makeText(MessageActivity.this,“您不能发送空消息”,Toast.LENGTH\u SHORT.show();
}
text_sent.setText(“”);
}
});
reference=FirebaseDatabase.getInstance().getReference(“用户”).child(用户ID);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
如果(isAdded()){//HERE
User=dataSnapshot.getValue(User.class);
username.setText(user.getUsername());
if(user.getImageURL().equals(“默认”)){
profile_image.setImageResource(R.mipmap.ic_启动器);
}
否则{
Glide.with(getApplicationContext()).load(user.getImageURL())到(profile\u image)中;
}
readMessages(fuser.getUid(),userid,user.getImageURL());
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
参见消息(用户ID);
}
私有void seenMessage(最终字符串userid){
reference=FirebaseDatabase.getInstance().getReference(“聊天”);
seenListener=reference.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot快照:DataSnapshot.getChildren()){
Chat Chat=snapshot.getValue(Chat.class);
if(chat.getReceiver().equals(fuser.getUid())&&chat.getSender().equals(userid)){
HashMap HashMap=新的HashMap();
hashMap.put(“isseen”,true);
snapshot.getRef().updateChildren(hashMap);
}
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void sendMessage(字符串发送方、字符串接收方、字符串消息){
DatabaseReference=FirebaseDatabase.getInstance().getReference();
最终字符串userid=intent.getStringExtra(“userid”);
HashMap HashMap=新的HashMap();
hashMap.put(“发送方”,发送方);
hashMap.put(“接收方”,接收方);
hashMap.put(“message”,message);
hashMap.put(“isseen”,false);
reference.child(“Chats”).push().setValue(hashMap);
final DatabaseReference chatRef=FirebaseDatabase.getInstance().getReference(“Chatlist”)
.child(fuser.getUid())
.child(userid);
chatRef.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
如果(!dataSnapshot.exists()){
chatRef.child(“id”).setValue(userid);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void readMessages(最终字符串myid、最终字符串userid、最终字符串imageurl){
mchat=newarraylist();
reference=FirebaseDatabase.getInstance().getReference(“聊天”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
mchat.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
Chat Chat=snapshot.getValue(Chat.class);
if(chat.getReceiver().equals(myid)和&chat.getSender().equals(userid)|