我是编码的新手。我尝试使用SQLite添加新列,但它不显示printf("%d %f", 0.9, 10)
列输出,只显示TextView中的名称。
有人可以告诉我我的代码有什么问题,因为它不会显示link
列吗?
历史片段
link
Favourites.java
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.database.Cursor;
public class HistoryFragment extends Fragment {
EditText name;
EditText link;
TextView sqlDisplay;
MyDBHandler dbHandler;
public HistoryFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_history, container, false);
link = (EditText) rootView.findViewById(R.id.link);
name = (EditText) rootView.findViewById(R.id.name);
sqlDisplay = (TextView) rootView.findViewById(R.id.sqlDisplay);
dbHandler = new MyDBHandler(this.getActivity(),null , null, null, 1);
printDatabase();
return rootView;
}
@Override
public void onViewCreated(View rootView, Bundle savedInstanceState) {
rootView.findViewById(R.id.saveButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveOnClicked(v);
}
});
rootView.findViewById(R.id.deleteButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteOnClicked(v);
}
});
}
//Add a product to the database
public void saveOnClicked(View view) {
favourites favourites = new favourites(name.getText().toString(),link.getText().toString());
dbHandler.addFavourites(favourites);
printDatabase();
}
//Delete items
public void deleteOnClicked(View view) {
String inputTextName = name.getText().toString();
String inputTextLink = link.getText().toString();
dbHandler.deleteFavourites(inputTextName,inputTextLink );
printDatabase();
}
//Print the database
public void printDatabase() {
String dbString = dbHandler.databaseToString();
sqlDisplay.setText(dbString);
name.setText("") ; link.setText("");
}
}
MyDBHandler
public class favourites {
private int _id;
private String _videoname;
private String _link;
public favourites(){
}
public favourites (String videoname,String link){
this._videoname = videoname;
this._link = link;
}
public void set_id(int _id) {
this._id = _id;
}
public void set_videoname(String _videoname) {
this._videoname = _videoname;
}
public String get_videoname() {
return _videoname;
}
public int get_id() {
return _id;
}
public String get_link() {
return _link;
}
public void set_link(String _link) {
this._link = _link;
}
}
答案 0 :(得分:0)
列定义之间需要逗号 你实际上有这个:
COLUMN_VIDEONAME + " TEXT " + COLUMN_LINK + " TEXT " +
但你需要这个
COLUMN_VIDEONAME + " TEXT, " + COLUMN_LINK + " TEXT " +
然后,像往常一样,然后简单地增加DATAVBASE_VERSION常量的值 或卸载并重新安装您的应用。
答案 1 :(得分:0)
您的Sqlite查询存在问题
**String query = "SELECT * FROM " + TABLE_FAVOURITES + " WHERE 1";**
String query = "SELECT * FROM " + TABLE_FAVOURITES + " WHERE YOUR_COLUMN_NAME=1";