Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 21 сен 2018, 16:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11
Автор Сообщение
СообщениеДобавлено: 29 окт 2015, 09:38 

Зарегистрирован: 20 авг 2015, 10:17
Сообщений: 8
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Foenix писал(а):
у курсора есть метод, recCount() или как-то так, проверяй вначале на нул, потом на кол-во записей.

Если вы имели в виду getCount, то совсем не понятно как это поможет проверить есть ли запись в БД.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 ноя 2015, 02:12 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Как выбрать из базы случайную строку?
Пробовал
Код: [ Загрузить ] [ Скрыть ]
  1. Cursor c = db.rawQuery("SELECT * FROM table ORDER BY RANDOM() LIMIT 1", null); 

Работает, но только в sqlitebrowser, в приложении падает с NullPointerException


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 фев 2016, 10:59 

Зарегистрирован: 29 фев 2016, 10:52
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
public Cursor sortRow() {
String where = null;
String[] columns = {KEY_DATE, "sum(" + KEY_VALUE + ") as" + KEY_VALUE};
Cursor c = db.query(true, DATABASE_TABLE, columns, where, null, KEY_DATE, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}

Помогите плиз. Что я неправильно делаю?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 фев 2016, 11:21 

Зарегистрирован: 29 фев 2016, 10:52
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
private void putSomeListViewForDays(){
Cursor cursor = myDB.sortRow();

String[] from = {DBAdapter.KEY_DATE, DBAdapter.KEY_VALUE};
int[] to = {R.id.textView, R.id.textView2};

SimpleCursorAdapter simpleCursorAdapter=new SimpleCursorAdapter(this, R.layout.some_item_layout, cursor, from, to);
lvShowDays.setAdapter(simpleCursorAdapter);
}

Код отображение.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 дек 2016, 08:38 

Зарегистрирован: 23 дек 2016, 07:52
Сообщений: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
При попытке использовать query вылетает ошибка:
Код: [ Загрузить ] [ Скрыть ]
  1. Failed to get GED Log Buf, err(0) 
  2. 12-23 08:05:24.461 32630 32630 D   mark                                         TABLE create table myTab (id integer primary key autoincrement,forText text,forNums integer); created 
  3. 12-23 08:06:43.786 32630 32630 E   SQLiteLog                                    (1) near "FROM": syntax error 
  4. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               FATAL EXCEPTION: main 
  5. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               Process: com.mycompany.myapp, PID: 32630 
  6. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               android.database.sqlite.SQLiteException: near "FROM": syntax error (code 1): , while compiling: SELECT  FROM myTab 
  7. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
  8. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:898) 
  9. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:509) 
  10. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
  11. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
  12. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
  13. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 
  14. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1346) 
  15. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1193) 
  16. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1064) 
  17. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1232) 
  18. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at com.mycompany.myapp.MainActivity.onClick(MainActivity.java:130) 
  19. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.view.View.performClick(View.java:4848) 
  20. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.view.View$PerformClick.run(View.java:20262) 
  21. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.os.Handler.handleCallback(Handler.java:815) 
  22. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.os.Handler.dispatchMessage(Handler.java:104) 
  23. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.os.Looper.loop(Looper.java:194) 
  24. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at android.app.ActivityThread.main(ActivityThread.java:5631) 
  25. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at java.lang.reflect.Method.invoke(Native Method) 
  26. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at java.lang.reflect.Method.invoke(Method.java:372) 
  27. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
  28. 12-23 08:06:43.794 32630 32630 E   AndroidRuntime                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

MainActivity.java
Код: [ Загрузить ] [ Скрыть ]
  1. [syntax=java5] 
  2. package com.mycompany.myapp; 
  3.  
  4. import android.app.Activity; 
  5. import android.os.Bundle; 
  6. import android.view.View; 
  7. import android.view.View.OnClickListener; 
  8. import android.widget.Button; 
  9. import android.content.*; 
  10. import android.util.*; 
  11. import android.widget.*; 
  12. import android.webkit.*; 
  13. import android.net.*; 
  14. import android.database.sqlite.*; 
  15. import android.database.*; 
  16.  
  17. public class MainActivity extends Activity  implements OnClickListener 
  18.  
  19.     final String tag="mark"; 
  20.     Tabuild Tad; 
  21.     String tapamS,nameS,colS,datS,qolS[],selS,argS[],havS,gruS,ordS; 
  22.     Button creBUT,inBUT,upBUT,delBUT,clerBUT,qurBUT; 
  23.     EditText tapamET,namET,colET,datET,qolET,selET,argET,havET,gruET,ordET; 
  24.      
  25.     public void onCreate(Bundle savedInstanceState) 
  26.     { 
  27.         super.onCreate(savedInstanceState); 
  28.         setContentView(R.layout.main); 
  29.         Tad = new Tabuild(this); 
  30.  
  31.         creBUT = (Button)findViewById(R.id.cretab); 
  32.         inBUT = (Button)findViewById(R.id.insert); 
  33.         upBUT = (Button)findViewById(R.id.update); 
  34.         delBUT = (Button)findViewById(R.id.delete); 
  35.         clerBUT = (Button)findViewById(R.id.clear); 
  36.         qurBUT = (Button)findViewById(R.id.query); 
  37.  
  38.         creBUT.setOnClickListener(this); 
  39.         inBUT.setOnClickListener(this); 
  40.         upBUT.setOnClickListener(this); 
  41.         delBUT.setOnClickListener(this); 
  42.         clerBUT.setOnClickListener(this); 
  43.         qurBUT.setOnClickListener(this); 
  44.  
  45.     } 
  46.  
  47.     public void onClick(View p1) 
  48.     { 
  49.         qolS=new String[1]; 
  50.         argS=new String[1]; 
  51.         tapamS=nameS=colS=datS=qolS[0]=selS=argS[0]=havS=gruS=ordS=null; 
  52.          
  53.         tapamET = (EditText)findViewById(R.id.tabpam); 
  54.         namET = (EditText)findViewById(R.id.TabNameET); 
  55.         colET = (EditText)findViewById(R.id.colname); 
  56.         datET = (EditText)findViewById(R.id.data); 
  57.         qolET = (EditText)findViewById(R.id.colms); 
  58.         selET = (EditText)findViewById(R.id.select); 
  59.         argET = (EditText)findViewById(R.id.selargs); 
  60.         havET = (EditText)findViewById(R.id.have); 
  61.         gruET = (EditText)findViewById(R.id.group); 
  62.         ordET = (EditText)findViewById(R.id.order); 
  63.          
  64.         tapamS = tapamET.getText().toString(); 
  65.         nameS = namET.getText().toString(); 
  66.         colS = colET.getText().toString(); 
  67.         datS = datET.getText().toString(); 
  68.         qolS[0] = qolET.getText().toString(); 
  69.         selS = selET.getText().toString(); 
  70.         argS[0] = argET.getText().toString(); 
  71.         havS = havET.getText().toString(); 
  72.         gruS = gruET.getText().toString(); 
  73.         ordS = ordET.getText().toString(); 
  74.  
  75.         ContentValues CV=new ContentValues(); 
  76.         Cursor CSR; 
  77.         SQLiteDatabase sqlid=Tad.getWritableDatabase(); 
  78.  
  79.         switch (p1.getId()) 
  80.         { 
  81.             case R.id.cretab:  
  82.                 { 
  83.                     sqlid.execSQL(tapamS); 
  84.                     Log.d(tag, "TABLE " + tapamS + " created"); 
  85.                     Toast.makeText(this, "new table created", Toast.LENGTH_SHORT).show(); 
  86.                 } 
  87.                 break; 
  88.  
  89.             case R.id.insert: 
  90.                 { 
  91.                     CV.put(colS, datS); 
  92.                     sqlid.insert(nameS, null, CV); 
  93.                     Toast.makeText(this,datS+" in "+colS+" inserted",Toast.LENGTH_SHORT).show(); 
  94.                 } 
  95.                 break; 
  96.  
  97.             case R.id.update: 
  98.                 { 
  99.                     CV.put(colS, datS); 
  100.                     sqlid.update(nameS, CV, selS, argS); 
  101.                      
  102.                 } 
  103.                 break; 
  104.  
  105.             case R.id.delete: 
  106.                 { 
  107.                     sqlid.delete(nameS, selS, argS); 
  108.                      
  109.                 } 
  110.                 break; 
  111.  
  112.             case R.id.clear: 
  113.                 { 
  114.                     tapamET.setText(null); 
  115.                     namET.setText( null); 
  116.                     colET.setText( null); 
  117.                     datET.setText( null); 
  118.                     qolET.setText( null); 
  119.                     selET.setText( null); 
  120.                     argET.setText( null); 
  121.                     havET.setText( null); 
  122.                     gruET.setText( null); 
  123.                     ordET.setText( null); 
  124.                 } 
  125.                 break; 
  126.  
  127.             case R.id.query: 
  128.                 { 
  129.                     String res="--"; 
  130.                     CSR = sqlid.query(nameS, qolS, selS, argS, havS, gruS, ordS); 
  131.                     if (CSR.moveToFirst()) 
  132.                     { 
  133.                         String colnam[]= CSR.getColumnNames(); 
  134.                         for (String cn:colnam) 
  135.                         { 
  136.                             res += cn + "--"; 
  137.                         } 
  138.                         Log.d(tag, res); 
  139.                         res = "--"; 
  140.                         do 
  141.                         {     
  142.                             for (String cn:colnam) 
  143.                             { 
  144.                                 int colind=CSR.getColumnIndex(cn); 
  145.                                 if((CSR.getType(colind))==CSR.FIELD_TYPE_STRING) 
  146.                                     res += (CSR.getString(colind)) + "--"; 
  147.                                 else if((CSR.getType(colind))==CSR.FIELD_TYPE_INTEGER) 
  148.                                     res+=(CSR.getInt(colind))+"--"; 
  149.                             } 
  150.                             Log.d(tag, res); 
  151.                             res = "--"; 
  152.                         } 
  153.                         while(CSR.moveToNext()); 
  154.                     } 
  155.                     else Toast.makeText(this,"CSR is empty",Toast.LENGTH_SHORT).show(); 
  156.                     CSR.close(); 
  157.                     Tad.close(); 
  158.                 } 
  159.                 break; 
  160.         } 
  161.     } 
  162.      
  163.     class Tabuild extends SQLiteOpenHelper 
  164.     { 
  165.         Tabuild(Context Cxt) 
  166.         { 
  167.             super(Cxt, "DaB", null, 1); 
  168.         } 
  169.  
  170.         public void onCreate(SQLiteDatabase p1) 
  171.         { 
  172.         } 
  173.         public void onUpgrade(SQLiteDatabase p1, int p2, int p3) 
  174.         { 
  175.         } 
  176.     } 
  177. [/syntax] 

main.xml
Код: [ Загрузить ] [ Скрыть ]
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     android:orientation="vertical"> 
  5.  
  6.     <LinearLayout 
  7.         android:layout_width="fill_parent" 
  8.         android:layout_height="wrap_content" 
  9.         android:orientation="horizontal"> 
  10.          
  11.         <Button 
  12.             android:layout_width="wrap_content" 
  13.             android:layout_height="wrap_content" 
  14.             android:text="create" 
  15.             android:id="@+id/cretab"/> 
  16.          
  17.        <EditText 
  18.             android:layout_width="match_parent" 
  19.             android:layout_height="wrap_content" 
  20.             android:id="@+id/tabpam"/> 
  21.  
  22.     </LinearLayout> 
  23.      
  24. <TableRow 
  25.     android:layout_width="match_parent" 
  26.     android:layout_height="match_parent"> 
  27.      
  28.     <TableLayout 
  29.         android:layout_width="wrap_content" 
  30.         android:layout_height="match_parent"> 
  31.              
  32.         <TextView 
  33.             android:text="TabName:" 
  34.             android:layout_marginTop="10dp" 
  35.             android:layout_height="wrap_content" 
  36.             android:layout_width="wrap_content"/> 
  37.              
  38.         <EditText 
  39.             android:id="@+id/TabNameET" 
  40.             android:minWidth="100dp" 
  41.             android:layout_height="wrap_content" 
  42.             android:layout_width="wrap_content"/> 
  43.              
  44.         <TextView 
  45.             android:text="column (cv): " 
  46.             android:layout_marginTop="10dp" 
  47.             android:layout_height="wrap_content" 
  48.             android:layout_width="wrap_content"/> 
  49.              
  50.          <EditText 
  51.             android:id="@+id/colname" 
  52.             android:minWidth="100dp" 
  53.             android:layout_height="wrap_content" 
  54.             android:layout_width="wrap_content"/> 
  55.              
  56.         <TextView 
  57.             android:text="data (cv): " 
  58.             android:layout_marginTop="10dp" 
  59.             android:layout_height="wrap_content" 
  60.             android:layout_width="wrap_content"/> 
  61.  
  62.         <EditText 
  63.             android:id="@+id/data" 
  64.             android:minWidth="100dp" 
  65.             android:layout_height="wrap_content" 
  66.             android:layout_width="wrap_content"/> 
  67.              
  68.         <Button 
  69.             android:layout_marginTop="10dp" 
  70.             android:text="insert" 
  71.             android:id="@+id/insert" 
  72.             android:layout_height="wrap_content" 
  73.             android:layout_width="wrap_content"/> 
  74.          
  75.         <Button 
  76.             android:layout_marginTop="10dp" 
  77.             android:text="update" 
  78.             android:id="@+id/update" 
  79.             android:layout_height="wrap_content" 
  80.             android:layout_width="wrap_content"/> 
  81.          
  82.     </TableLayout> 
  83.      
  84.     <TableLayout 
  85.         android:layout_width="wrap_content" 
  86.         android:layout_height="match_parent"> 
  87.          
  88.         <TextView 
  89.             android:text="columns: " 
  90.             android:layout_marginTop="10dp" 
  91.             android:layout_height="wrap_content" 
  92.             android:layout_width="wrap_content"/> 
  93.  
  94.         <EditText 
  95.             android:id="@+id/colms" 
  96.             android:minWidth="100dp" 
  97.             android:layout_height="wrap_content" 
  98.             android:layout_width="wrap_content"/> 
  99.          
  100.         <TextView 
  101.             android:text="selection: " 
  102.             android:layout_marginTop="10dp" 
  103.             android:layout_height="wrap_content" 
  104.             android:layout_width="wrap_content"/> 
  105.  
  106.         <EditText 
  107.             android:id="@+id/select" 
  108.             android:minWidth="100dp" 
  109.             android:layout_height="wrap_content" 
  110.             android:layout_width="wrap_content"/> 
  111.          
  112.         <TextView 
  113.             android:text="ARGS[]: " 
  114.             android:layout_marginTop="10dp" 
  115.             android:layout_height="wrap_content" 
  116.             android:layout_width="wrap_content"/> 
  117.  
  118.         <EditText 
  119.             android:id="@+id/selargs" 
  120.             android:minWidth="100dp" 
  121.             android:layout_height="wrap_content" 
  122.             android:layout_width="wrap_content"/> 
  123.          
  124.         <Button 
  125.             android:layout_marginTop="10dp" 
  126.             android:text="delete" 
  127.             android:id="@+id/delete" 
  128.             android:layout_height="wrap_content" 
  129.             android:layout_width="wrap_content"/> 
  130.          
  131.         <Button 
  132.             android:layout_marginTop="10dp" 
  133.             android:text="clear" 
  134.             android:id="@+id/clear" 
  135.             android:layout_height="wrap_content" 
  136.             android:layout_width="wrap_content"/> 
  137.          
  138.     </TableLayout> 
  139.      
  140.     <TableLayout 
  141.         android:layout_width="wrap_content" 
  142.         android:layout_height="match_parent"> 
  143.          
  144.         <TextView 
  145.             android:text="having: " 
  146.             android:layout_marginTop="10dp" 
  147.             android:layout_height="wrap_content" 
  148.             android:layout_width="wrap_content"/> 
  149.  
  150.         <EditText 
  151.             android:id="@+id/have" 
  152.             android:minWidth="100dp" 
  153.             android:layout_height="wrap_content" 
  154.             android:layout_width="wrap_content"/> 
  155.          
  156.         <TextView 
  157.             android:text="group: " 
  158.             android:layout_marginTop="10dp" 
  159.             android:layout_height="wrap_content" 
  160.             android:layout_width="wrap_content"/> 
  161.  
  162.         <EditText 
  163.             android:id="@+id/group" 
  164.             android:minWidth="100dp" 
  165.             android:layout_height="wrap_content" 
  166.             android:layout_width="wrap_content"/> 
  167.          
  168.         <TextView 
  169.             android:text="order: " 
  170.             android:layout_marginTop="10dp" 
  171.             android:layout_height="wrap_content" 
  172.             android:layout_width="wrap_content"/> 
  173.  
  174.         <EditText 
  175.             android:id="@+id/order" 
  176.             android:minWidth="100dp" 
  177.             android:layout_height="wrap_content" 
  178.             android:layout_width="wrap_content"/> 
  179.          
  180.         <Button 
  181.             android:layout_marginTop="10dp" 
  182.             android:text="query" 
  183.             android:id="@+id/query" 
  184.             android:layout_height="wrap_content" 
  185.             android:layout_width="wrap_content"/> 
  186.          
  187.     </TableLayout> 
  188.              
  189. </TableRow> 
  190.  
  191. </LinearLayout> 

При вводе аргументов для query в коде , например: query(myTab,null,null,null,null,null,null) -всё работает , но если брать аргументы из полей ввода , при работе самого приложения возникает ошибка -подозреваю что дело в массивах columns и selectARGS , так как если значения для них в параметрах query выставить null прямо в коде , то значения для остальных параметров нормально берутся из полей и программа работает


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2018, 12:31 

Зарегистрирован: 21 ноя 2017, 19:44
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ermek6 писал(а):
Вопрос по организации кода.
Зачем получать курсор в каждом кейсе. Ведь переменные то мы и так установили все в null. Можно же один раз курсор получить после switch. Или же для этого были другие причины???

насколько я понял из своей небольшой практики, курсор работает с данными, которые существовали в таблице на момент создания курсора. конкретно в этом примере в процессе работы программы данные не меняются, но если это потребуется, то измененные данные не попадут в область охвата курсором, созданным до изменения данных. Как видите, по стилю написания я еще новичок поэтому поправьте. если не так. Заранее благодарен


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB