Форум программистов, компьютерный форум CyberForum.ru

SQLite Android таблица - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не отправляется файл http://www.cyberforum.ru/android-dev/thread825011.html
Здравствуйте. Приложение не хочет отправлять картинку, вместо этого отправляет текст с путём к ней делал так: Bitmap returnedBitmap = Bitmap.createBitmap(Your.getWidth(), Your.getHeight(),Bitmap.Config.ARGB_8888); Bitmap bmpToSave = returnedBitmap; File sdCard = Environment.getExternalStorageDirectory(); File directory = new File(sdCard.getAbsolutePath() +...
Android Проверка наличия камеры Доброго времени. подскажите плиз, как проверить наличие камеры на устройстве? проверяю вот таким методом private boolean checkCameraHardware(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // есть камера return true; } else { // нет камеры http://www.cyberforum.ru/android-dev/thread824713.html
Dialog vs Fragments Android
Народ можно ли добавлять в диалог fragmets динамически Статически можно и это покрывает все потребности но хочеться отптимизировать память я в принципе почти уверен что нельзя но вдруг ...
Как рисовать "карандашом" на экране Android
Уважаемые мастера, подскажите, как сделать рисовалку - типа, пользователь водит пальцем по экрану, а за ним идет след - как будто он рисует карандашом. И, как получить попиксельный доступ к нарисованному. Я хочу повторить на андройде программу, которую раньше делал на флеше http://hohohu.com
Android Отправка длинного СМС http://www.cyberforum.ru/android-dev/thread824433.html
Здравствуйте. Каким способом можно отправить длинное СМС сообщение. В данный момент отправляю так smsManager.sendTextMessage(SMSNumber, null, FullSMS, null, null); но при отправке длинных смс сообщение закрывается с ошибкой
Android Проверка на существование приложения Здравствуйте. Можно ли как то программно проверить существует ли определенное приложение в системе (то есть, установлено ли оно) и если да - то запустить именно это приложение через Intent? подробнее

Показать сообщение отдельно
TalgatMuratov
1 / 1 / 1
Регистрация: 01.04.2013
Сообщений: 40

SQLite Android таблица - Android

01.04.2013, 20:02. Просмотров 2067. Ответов 16
Метки (Все метки)

Ужас устал помогите пожалуйста! В SQLite добавил дополнительную таблицу:
public static final String KEY_NAME = "Name";
После этого где только необходимо добавил KEY_NAME программа запускается но когда я с 1 окна с помощью перехожу в базу данных что бы передать полученный результат выдаёт ошибка в Debug а в самом коде вроде всё нормально Eclipse не ругается!
Я выложу полностью свой код, может я что то не правильно сделал в коде, пожалуйста откликнитесь а то я запутался!
Первое идёт простой калькулятор MainAcivity:
package com.talgat.kalkulator;


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
@SuppressLint("CutPasteId")
public class MainActivity extends Activity implements OnClickListener {
    final int MENU_COLOR_BLACK = 1;
    final int MENU_COLOR_BLUE = 2;
    final int MENU_COLOR_GREEN = 3;
    final int MENU_COLOR_RED = 4;
    final int MENU_COLOR_WHITE = 5;
    final int MENU_HD1 =6;
    final int MENU_HD2 =7;
    final int MENU_HD3 =8;
    final int MENU_HD4 =9;
    final int MENU_HD5 =10;
    
    EditText but1;
    EditText but2;
    Button plus;
    Button minus;
    Button umno;
    Button delen;
    TextView result;
    String operator= "";
    
    
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 View mStartButton = findViewById(R.id.button1);
 mStartButton.setOnClickListener(this);
 
 but1 = (EditText) findViewById(R.id.Num1);
 but2 = (EditText) findViewById(R.id.Num2);
 plus = (Button) findViewById(R.id.plus);
 minus = (Button) findViewById(R.id.minus);
 umno = (Button) findViewById(R.id.umno);
 delen = (Button) findViewById(R.id.delen);
 result = (TextView) findViewById(R.id.result);
 registerForContextMenu(result);
 registerForContextMenu(mStartButton);
 
 plus.setOnClickListener(this);
 minus.setOnClickListener(this);
 umno.setOnClickListener(this);
 delen.setOnClickListener(this);
 
 }
 
 
 public void onClick(View v) {
    float Num1 = 0;
    float Num2 = 0;
    float result1 = 0;
    
    
    if (TextUtils.isEmpty(but1.getText().toString())
    || TextUtils.isEmpty(but2.getText().toString())){
    return;
    }
    
    Num1 = Float.parseFloat(but1.getText().toString());
    Num2 = Float.parseFloat(but2.getText().toString());
    
    switch (v.getId()) {
    case R.id.plus:
    operator = "+";
    result1 = Num1 + Num2;
    break;
    case R.id.minus:
    operator = "-";
    result1 = Num1 - Num2;
    break;
    case R.id.umno:
    operator = "*";
    result1 = Num1 * Num2;
    break;
    case R.id.delen:
    operator = "/";
    result1 = Num1 / Num2;
    break;
    case R.id.button1:
//здесь я передаю полученный результат для обоих полей которые после заносятся в БД как insert(string).
// Это для вставки в KEY_CONTENT
    Intent intent = new Intent(this, Database.class);
    intent.putExtra("talgat", result.getText().toString());
// Это для вставки в KEY_NAME
    Intent intent1 = new Intent(this, Database.class);
    intent1.putExtra("talgat1", result.getText().toString());
 
    
    
    
    
    
    startActivity(intent1);
    startActivity(intent);
    break;
    
    
    
    default:
    break;
    
    }
    
    
    result.setText(Num1 + " " + operator + " " + Num2 + "=" + result1);
    
    
    
 
    
    
    
    
    }
 public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.result:
    menu.add(0, MENU_COLOR_BLACK, 0, "Black");
    menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
    menu.add(0, MENU_COLOR_GREEN, 0, "Green");
    menu.add(0, MENU_COLOR_RED, 0, "Red");
    menu.add(0, MENU_COLOR_WHITE, 0, "White");
    break;
    case R.id.button1:
    menu.add(0, MENU_HD1, 0, "Girl1");
    menu.add(0, MENU_HD2, 0, "Girl2");
    menu.add(0, MENU_HD3, 0, "Girl3");
    menu.add(0, MENU_HD4, 0, "Girl4");
    menu.add(0, MENU_HD5, 0, "Girl5");
    break;
    }}
@Override
    public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()) {
    case MENU_COLOR_BLACK:
    result.setTextColor(Color.BLACK);
    
    
    break;
    case MENU_COLOR_BLUE:
    result.setTextColor(Color.BLUE);
    
    
    
    break;
    case MENU_COLOR_GREEN:
    result.setTextColor(Color.GREEN);
    
    break;
    
    case MENU_COLOR_RED:
    result.setTextColor(Color.RED);
    
    break;
    case MENU_COLOR_WHITE:
    result.setTextColor(Color.WHITE);
    
    break;
    case MENU_HD1:
    View mStartButton = findViewById(R.id.button1);
 mStartButton.setBackgroundResource(R.drawable.ic_launcher1);
    break;
    case MENU_HD2:
    View mStartButton1 = findViewById(R.id.button1);
    mStartButton1.setBackgroundResource(R.drawable.ic_launcher4);
    break;
    case MENU_HD3:
    View mStartButton2 = findViewById(R.id.button1);
    mStartButton2.setBackgroundResource(R.drawable.ic_launcher5);
    break;
    case MENU_HD4:
    View mStartButton3 = findViewById(R.id.button1);
    mStartButton3.setBackgroundResource(R.drawable.ic_launcher6);
    break;
    case MENU_HD5:
    View mStartButton4 = findViewById(R.id.button1);
    mStartButton4.setBackgroundResource(R.drawable.ic_launcher7);
    break;
    }
    return super.onContextItemSelected(item);
}
 
 
 
 }
Адаптер БД, таблицы SQLiteAdapter class:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
 
public class SQLiteAdapter {
 
    public static final String MYDATABASE_NAME = "MY_DATABASE3";
    public static final String MYDATABASE_TABLE = "MY_TABLE";
    public static final String KEY_NAME = "Name";
//Добавил KEY_NAME;
    public static final int MYDATABASE_VERSION = 1;
    public static final String KEY_CONTENT = "Content";
    public static final String KEY_ID = "_id";
 
    
 
    private SQLiteHelper sqLiteHelper;
    private SQLiteDatabase sqLiteDatabase;
 
    private Context context;
 
    public SQLiteAdapter(Context c) {
    context = c;
    }
 
    public SQLiteAdapter openToRead() throws android.database.SQLException {
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
    MYDATABASE_VERSION);
    sqLiteDatabase = sqLiteHelper.getReadableDatabase();
    return this;
    }
 
    public SQLiteAdapter openToWrite() throws android.database.SQLException {
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
    MYDATABASE_VERSION);
    sqLiteDatabase = sqLiteHelper.getWritableDatabase();
    return this;
    }
 
    public void close() {
    sqLiteHelper.close();
    }
 
    public long insert(String content, String name) {
    ContentValues values = new ContentValues();
    values.put(KEY_CONTENT, content);
    values.put(KEY_NAME, name);
//в insert в скобках добавил String name и также указал что вставка именно в KEY_NAME
    
    return sqLiteDatabase.insert(MYDATABASE_TABLE , null, values);
    }
 
    public int deleteAll() {
    return sqLiteDatabase.delete(MYDATABASE_TABLE , null, null);
    }
 
    public Cursor queueAll() {
    String[] columns = new String[] { KEY_ID, KEY_CONTENT, KEY_NAME };
Здесь тоже самое вставил!
    Cursor cursor = sqLiteDatabase.query(true, MYDATABASE_TABLE , columns, null,
    null, null, null, null, null);
 
    return cursor;
    }
 
    public class SQLiteHelper extends SQLiteOpenHelper {
 
    public SQLiteHelper(Context context, String name,
    CursorFactory factory, int version) {
    super(context, name, factory, version);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
//Создание БД также вставил KEY_NAME
    // TODO Auto-generated method stub
    // create table MY_DATABASE (ID integer primary key, Content text not null);
    String SCRIPT_CREATE_DATABASE = "create table "
    + MYDATABASE_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " + KEY_CONTENT
    + " text not null,"
    +KEY_NAME + "text not null);";
    db.execSQL(SCRIPT_CREATE_DATABASE);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF EXISTS" + MYDATABASE_TABLE);
    onCreate(db);
    }
    }
}
А вот куда и переходит мои полученный данные в Database class:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
 
 
public class Database extends Activity implements OnClickListener {
    
    
 
    private SQLiteAdapter mySQLiteAdapter;
    ListView listContent;
    
    
    
 
    
    
 
    SimpleCursorAdapter cursorAdapter;
    Cursor cursor;
    
    
    
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    
    
    listContent = (ListView) findViewById(R.id.listContent);
    View mStartButton = findViewById(R.id.deleteall);
    mStartButton.setOnClickListener(this);
    
    
 
    /*
    * Создаем/Открываем a SQLite-базу и заполняем ее именами
    * Закрываем базу
    */
    mySQLiteAdapter = new SQLiteAdapter(this);
    mySQLiteAdapter.openToWrite();
    Intent intent = getIntent();
    String data1 = intent.getStringExtra("talgat");
    Intent intent1 = getIntent();
    String data2 = intent1.getStringExtra("talgat1");
    mySQLiteAdapter.insert(data1, data2);
    
    
    
    
    
 
    /*
    * Открываем эту же базу и считываем содержимое.
    */
    //mySQLiteAdapter = new SQLiteAdapter(this);
    //mySQLiteAdapter.openToRead();
 
    cursor = mySQLiteAdapter.queueAll();
    //startManagingCursor(cursor);
//Здесь добавил SQLiteAdapter.KEY_NAME и дополнительно R.id.text1 
//String[] from это массив строк
//  int[] to целочисленный массив куда закидываются данные в TextView нужно чтобы KEY_CONTENT заносился в R.id.text а KEY_NAME в R.id.text1 
String[] from = new String[] { SQLiteAdapter.KEY_CONTENT, SQLiteAdapter.KEY_NAME };
    int[] to = new int[] { R.id.text, R.id.text1 };
 
    cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor,
    from, to);
 
    listContent.setAdapter(cursorAdapter);
    
    
    }
 
    public void onClick(View v) {
    
    
    switch (v.getId()) {
    case R.id.deleteall:
    mySQLiteAdapter.deleteAll();
    updateList();
    break;
 
    default:
    break;
    }
    }
 
    private void updateList() {
    cursor.requery();
    }
 
    @Override
    protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    mySQLiteAdapter.close();
    }
}
вот xml файл row для TextView:text и text1:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="vertical" >
<TextView 
 android:id="@+id/text"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:padding="10dip" 
 android:text="@string/text"
 android:textColor="@color/black"/>
<TextView 
android:id="@+id/text1"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:padding="10dip" 
 android:text="@string/text"
 android:textColor="@color/black"/>
</LinearLayout>
Может где то я ошибся но Eclipse ошибок не видит вроде всё правильно но когда я передаю с помощью Intent нажимаю кнопку перехода то тогда вылазиет такое:
вот ссылка на картинку с ошибкой
http://talgatmuratov.narod2.ru/Eclipse/Eclipse.jpg
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru