代码没有错误。但是,我试图建立一个注释部分,其中的名称和注释将保存在数据库(SQLite)中。
1)从另一个页面返回后,它不会停留在Textview中。 2)例如,我评论了一次,并显示了评论。我再次发表评论,它实际上重新显示了以前的评论和新的评论。
public class BuyerHome extends AppCompatActivity {
DatabaseHelper2 myDB;
//EditText name,comment;
EditText nameIn;
EditText commentIn;
TextView viewComment;
Button postComment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_buyer_home);
nameIn = (EditText) findViewById(R.id.nameInput);
commentIn = (EditText) findViewById(R.id.commentText);
viewComment = (TextView) findViewById(R.id.viewCommentText);
myDB = new DatabaseHelper2(this);
postComment = (Button) findViewById(R.id.buttonComment);
postComment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameIn.getText().toString();
String comment = commentIn.getText().toString();
if(nameIn.length()!=0 && commentIn.length()!=0){
AddData(name,comment);
nameIn.setText("");
commentIn.setText("");
}else{
Toast.makeText(BuyerHome.this, "Insert fields",
Toast.LENGTH_SHORT).show();
}
Cursor data = myDB.getContents();
if(data.getCount()==0){
Toast.makeText(BuyerHome.this, "Database empty",
Toast.LENGTH_SHORT).show();
}
else{
while(data.moveToNext()){
viewComment.append(data.getString(1));
viewComment.append(data.getString(2)+"\n");
}
}
//viewComment.append("\n"+name+":"+comment);
}
});
}
public void AddData(String name,String comment){
boolean insertData = myDB.insertData(name,comment);
if(insertData==true){
Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Fail", Toast.LENGTH_SHORT).show();
}
}
}
1)只要页面可用,我希望过去的评论在那里。 2)我只希望显示最新评论(在过去评论的顶部),而不希望过去评论(再次显示)以及新评论。
答案 0 :(得分:0)
对于较旧的评论,我建议使用第二种视图。您还需要一种确定最新信息而不是旧评论的方法。
在第二个视图下面的示例中,是一个Listview(这使您可以单击特定的消息,也许将其引用,或者提取名称)。
该示例提供了两种通过id column 来确定最后发布的评论的方法(请注意,实际上将 _id 用作列名,因为这样可以使用Cursor Adapter用于ListView,这可能是有利的)。
为了方便在返回 onResume 方法之后显示注释,该注释已在活动中被覆盖。
这是代码:-
error: no matching function for call to 'foo0'
foo0<void, int>(bar<int>);
^~~~~~~~~~~~~~~
note: candidate template ignored: could not match 'function<void (int, type-parameter-0-1...)>' against 'void (*)(int)'
void foo0(std::function<RetType(ArgTypes...)> f) {}
请注意,尚未使用 timestamp 列,但可能会使用它,因为添加行(注释)时,当前时间戳将自动用于设置该列。 / p>
请注意,getLatestComment和getAllButLatestComment方法返回具有适当行的Cursor。
window.location.pathname.split("/").pop()