添加列后,为什么我的SQLite仍然无法处理我的片段

时间:2015-08-01 09:46:39

标签: android sqlite android-fragments

我是编码的新手。我尝试使用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;
}
}

2 个答案:

答案 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";