2017-07-21 2 views
0

SQLiteに格納されたデータを入力して請求書テンプレートを作成しようとしています。私はListViewを使ってこれを行う方法があることを知っています。このアクティビティを実行すると、アプリがクラッシュします。TextViewでsqliteからデータが入力されない

public class Ticket_generator extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.ticket_table); 
    Context context; 
    context=this; 
    TableHelper datahelper= new TableHelper(context); 
    datahelper.insertData("Home foods","Veg Resturant","New Municipal Blog","abc compound","mumbai 400007","01/07/17","COUNTER","BILL NO.-123","Perticulars","Quantity","Rate","gst","06.56AM"); 
    Cursor cr; 
     cr=datahelper.getInformation(); 
     TextView tv; 
     tv=(TextView)findViewById(R.id._s1t1); 
     tv.setGravity(Gravity.CENTER); 
     tv.setTextSize(16); 
     tv.setPadding(5, 5, 5, 5); 
     tv.setText(cr.getString(1)); 
    } 

} 

これは、あなたがこの例のように、最初の位置のためにカーソルを移動する必要がTableHelper.java

public class TableHelper extends SQLiteOpenHelper { 
public static final String DATABASE_NAME = "Ticketdb"; 
public static final int DATABASE_VERSION = 1; 
public static final String TABLE_TICKET = "tblticketdata"; 
public static final String CREATE_TABLE_TICKET = "CREATE TABLE IF NOT EXISTS " + TABLE_TICKET + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, s1t1 TEXT NULL,s1t2 TEXT NULL,s1t3 TEXT NULL,s1t4 TEXT NULL,s1t5 TEXT NULL,s2t1 TEXT NULL,s2t2 TEXT NULL,s2t3 TEXT NULL, s3t1 TEXT NULL,s3t2 TEXT NULL,s3t3 TEXT NULL,ft1 TEXT NULL,ft2 TEXT NULL)"; 
public static final String DELETE_TABLE_SERVICES = "DROP TABLE IF EXISTS " + TABLE_TICKET; 

public TableHelper(Context context) { 

    super(context, DATABASE_NAME, null, DATABASE_VERSION); 

} 

public void onCreate(SQLiteDatabase db) { 

    db.execSQL(CREATE_TABLE_TICKET); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    db.execSQL(DELETE_TABLE_SERVICES); 
    //Create tables again 
    onCreate(db); 
} 

public void insertData(String s1t1, String _s1t2, String _s1t3, String _s1t4, String _s1t5, String _s2t1, String _s2t2, 
         String _s2t3, String _s3t1, String _s3t2, String _s3t3, String _ft1, String _ft2) { 

    // Open the database for writing 
    SQLiteDatabase db = this.getWritableDatabase(); 
    // Start the transaction. 
    db.beginTransaction(); 
    ContentValues values; 

    try { 
     values = new ContentValues(); 
     values.put("s1t1", s1t1); 
     values.put("s1t2", _s1t2); 
     values.put("s1t3", _s1t3); 
     values.put("s1t4", _s1t4); 
     values.put("s1t5", _s1t5); 
     values.put("s2t1", _s2t1); 
     values.put("s2t2", _s2t3); 
     values.put("s2t3", _s2t3); 
     values.put("s3t1", _s3t1); 
     values.put("s3t2", _s3t2); 
     values.put("s3t3", _s3t3); 
     values.put("ft1", _ft1); 
     values.put("ft2", _ft2); 


     // Insert Row 
     long i = db.insert(TABLE_TICKET, null, values); 
     Log.i("Insert", i + ""); 
     // Insert into database successfully. 
     db.setTransactionSuccessful(); 

    } catch (SQLiteException e) { 
     e.printStackTrace(); 

    } finally { 
     db.endTransaction(); 
     // End the transaction. 
     db.close(); 
     // Close database 
    } 

} 

public Cursor getInformation() { 
    SQLiteDatabase sq = this.getReadableDatabase(); 
    String[] columns = {"s1t1", "s1t2", "s1t3", "s1t4", "s1t5", "s2t1", "s2t2", "s2t3", "s3t1", "s3t2", "s3t3", "ft1", "ft2"}; 
    Cursor cr = sq.query(TABLE_TICKET, columns, null, null, null, null, null); 
    return cr; 
} 
} 
+2

あなたのlogcatエラーは何ですか?アプリがクラッシュする理由を確認するには、logcatをここに入れてください。 –

+0

logcatエラーを表示してください。 –

答えて

0

です:

public String getFirstResult(){ 
    String firstResult; 
    TableHelper datahelper = new TableHelper(context); 
    Cursor cursor = datahelper.getInformation(); 
    cursor.moveToFirst(); 
    firstResult = cursor.getString(0); 
    return firstResult; 
} 
+0

ありがとう、これは正常に動作しています。私は他の結果を取る必要がある場合、私はちょうどインデックスを増分する必要がありますか? –

関連する問題