import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.List;
public class ActivityJokeDetail extends AppCompatActivity {
public static final String KEY_JOKEDETAILS = "JOKEDETAILS";
private Joke joke;
private TextView tvJokeText, tvJokeVote, tvAuthor, tvPostedDate;
private EditText etNewComment;
private Button btJokeUp, btJokeDown, btSendComment ;
private RecyclerView recyclerView;
private View include;
private AdapterJokeDetail mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_joke_detail);
joke = getIntent().getParcelableExtra(KEY_JOKEDETAILS);
include = findViewById(R.id.include);
tvJokeText = include.findViewById(R.id.tvCommentText);
tvJokeVote = include.findViewById(R.id.tvCommentVotes);
tvAuthor = include.findViewById(R.id.tvAuthor);
tvPostedDate = include.findViewById(R.id.tvPostDate);
btJokeUp = include.findViewById(R.id.btCommentUp);
btJokeDown = include.findViewById(R.id.btCommentDown);
tvJokeText.setText(joke.getText());
tvJokeVote.setText(Integer.toString(joke.getVotes()));
// TODO: tvAuthor.setText(joke.getAuthor());
// TODO: tvPostedDate.setText(joke.getPostedDate().toString());
etNewComment = findViewById(R.id.etNewComment);
btSendComment = findViewById(R.id.btSendComment);
recyclerView = findViewById(R.id.rvComments);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
mAdapter = new AdapterJokeDetail(joke.getComments());
recyclerView.setAdapter(mAdapter);
btSendComment.setOnClickListener(v -> {
SendComment();
mAdapter.notifyDataSetChanged();
});
}
private void SendComment() {
Comment comment = new Comment(etNewComment.getText().toString(),0,"author"); //TODO: add author
joke.getComments().add(comment);
}
}
笑话
package com.example.jokestarapplication;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Joke implements Parcelable {
private String text;
private int votes;
private Date postedDate;
private String author;
private String authorId;
private String category;
private List<Comment> comments;
public Joke(String text, Date postedDate, String category, String author, String authorId, List<Comment> arrayList) {
this.text = text;
this.votes = 0;
this.postedDate = postedDate;
this.author = author;
this.authorId = authorId;
this.category = category;
this.comments = arrayList;
}
protected Joke(Parcel in) {
text = in.readString();
votes = in.readInt();
postedDate = new Date(in.readLong());
author = in.readString();
authorId = in.readString();
category = in.readString();
comments = in.createTypedArrayList(Comment.CREATOR);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(text);
dest.writeInt(votes);
dest.writeLong(postedDate.getTime());
dest.writeString(author);
dest.writeString(authorId);
dest.writeString(category);
dest.writeTypedList(comments);
}
public static final Creator<Joke> CREATOR = new Creator<Joke>() {
@Override
public Joke createFromParcel(Parcel in) {
return new Joke(in);
}
@Override
public Joke[] newArray(int size) {
return new Joke[size];
}
};
public String getText() {
return text;
}
public int getVotes() {
return votes;
}
public Date getPostedDate() {
return postedDate;
}
public String getAuthor() {
return author;
}
public String getAuthorId() {
return authorId;
}
public String getCategory() {
return category;
}
public List<Comment> getComments() {
return comments;
}
@Override
public int describeContents() {
return 0;
}
public void JokeVoteUp(){
votes+=1;
}
public void JokeVoteDown(){
votes-=1;
}
}
出现问题的行位于//TODO中:
假设您在一个活动文件中有完整的布局,并且它们确实存在于布局中。
实际上不需要使用include变量。
使用:
tvAuthor = findViewById(R.id.tvAuthor);
tvAuthor = include.findViewById(R.id.tvAuthor);
a 应该在内部使用类似于: 如何一个
我用了这段代码并运行,但没有输出出来不知道为什么? 但如果正在使用s=“”;则也没有输出。 但是当我使用s=“”;那么输出就来了,为什么会这样呢?
为什么它抛出一个错误?任何帮助都将不胜感激 编辑:
问题内容: 我在何时遇到oracle的问题。 该查询始终返回null,尽管很明显结果应该是第一种情况。我是否缺少有关oracle中字符串比较的内容? 问题答案: 您要再次检查字符串和一个空字符串,从而出现问题;在Oracle中,您最好检查一下您的字符串: 关于Oracle处理空字符串和空值的方式,在这里您可以找到更多信息 一个例子: 给出: 简而言之,谈论时,您可以依靠的唯一支票是:
我是第一次使用代码优先的方法。如果我错过了一些非常基本的东西,请原谅我。 我需要传递连接字符串到DB上下文,但我不能将连接字符串app.config,因为我在类本身调用一个金块,它给我连接字符串。 这种做法正确吗?我无法在本地系统上测试此功能。还是我应该把绳子传给基地 类A():基(连接)
问题内容: 我有需要将Java对象转换为json的要求。 我为此使用Gson,但我需要转换器仅序列化非null或非空值。 例如: 现在我的Gson实例将此对象转换为json看起来像 在上面的打印中,结果是 在这里我只是希望结果是 由于test2为空,otherObject为空,我不希望它们被序列化为json数据。 顺便说一句,我使用的是Groovy / Grails,因此,如果有任何对此的插件会很