· 9 years ago · Sep 16, 2017, 12:44 PM
1package com.example.dell.foodcourt;
2
3
4import android.content.ContentValues;
5import android.content.Context;
6import android.database.Cursor;
7import android.database.SQLException;
8import android.database.sqlite.SQLiteDatabase;
9import android.database.sqlite.SQLiteOpenHelper;
10import android.sax.StartElementListener;
11import android.widget.ArrayAdapter;
12import android.widget.Toast;
13
14public class FoodCourt_UserLoginDatabase{
15 Context context;
16 FoodCourt_LoginData foodCourt_loginData;
17 SQLiteDatabase db;
18
19 public FoodCourt_UserLoginDatabase(Context context){
20 foodCourt_loginData=new FoodCourt_LoginData(context);
21 }
22
23 //Inserting data in database
24 public void insertData(String username,String userpwd,String usermble){
25
26 SQLiteDatabase db = foodCourt_loginData.getWritableDatabase();
27 ContentValues contentValues = new ContentValues();
28 contentValues.put(FoodCourt_LoginData.USERNAME, username);
29 contentValues.put(FoodCourt_LoginData.USERPWD, userpwd);
30 contentValues.put(FoodCourt_LoginData.USERMOBILE, usermble);
31 db.insertWithOnConflict(FoodCourt_LoginData.TABLENAME, null, contentValues, SQLiteDatabase.CONFLICT_REPLACE);
32 }
33
34 //This is for view Data in database
35 public String viewData(){
36
37 SQLiteDatabase db=foodCourt_loginData.getWritableDatabase(); //calling database to get writable data
38 String[] cloumn={FoodCourt_LoginData.ID,FoodCourt_LoginData.USERNAME,FoodCourt_LoginData.USERPWD}; //stroing all the values in String array
39 //Cursor is used to call the Stored data in Database and it starts data reading from row1 and moveToNext will call from upto end of data
40 Cursor cursor=db.query(FoodCourt_LoginData.TABLENAME,cloumn,null,null,null,null,null);
41 StringBuffer Buffer=new StringBuffer();
42 while(cursor.moveToNext()){
43 int cid=cursor.getInt(0);
44 String Name=cursor.getString(1);
45 String Password=cursor.getString(2);
46 Buffer.append(cid+" "+Name+" "+Password+" "+"n");
47 }
48 return Buffer.toString();
49 }
50
51
52 //THIS IS THE CURSOR METHOD I AM USING TO GET THE VALUES FROM DATABASE
53 public Cursor CitiesData(){
54 SQLiteDatabase db=foodCourt_loginData.getReadableDatabase(); //calling database to get writable data
55 Cursor citi=db.query(FoodCourt_LoginData.Citietable,new String[]{FoodCourt_LoginData.City},null,null,null,null,null);
56 return citi;
57 }
58 //this to view the cities data
59 public String ViewCitiesData(){
60
61 SQLiteDatabase db=foodCourt_loginData.getWritableDatabase(); //calling database to get writable data
62 String[] cloumn={FoodCourt_LoginData.City}; //stroing all the values in String array
63 //Cursor is used to call the Stored data in Database and it starts data reading from row1 and moveToNext will call from upto end of data
64 Cursor cursor=db.query(FoodCourt_LoginData.Citietable,cloumn,null,null,null,null,null);
65 StringBuffer Buffer=new StringBuffer();
66 while(cursor.moveToNext()){
67 String Cities=cursor.getString(0);
68 Buffer.append(Cities+"n");
69 }
70 return Buffer.toString();
71 }
72
73
74 //Login Function in Database
75 public String Login(String Uname){
76 SQLiteDatabase db=foodCourt_loginData.getReadableDatabase();
77 String[] column={FoodCourt_LoginData.USERNAME,FoodCourt_LoginData.USERPWD};
78 Cursor cursor=db.query(FoodCourt_LoginData.TABLENAME,column,null,null,null,null,null);
79 String a,b;
80 b="not found";
81 if(cursor.moveToFirst()){
82 do {
83 a=cursor.getString(0);
84 b=cursor.getString(1);
85 if(a.equals(Uname)){
86 b=cursor.getString(1);
87 break;
88 }
89 }while (cursor.moveToNext());
90
91 }
92 return b;
93 }
94
95 public void AddCiti(String citiname){
96 SQLiteDatabase db=foodCourt_loginData.getReadableDatabase();
97 ContentValues contentValues=new ContentValues();
98 contentValues.put(FoodCourt_LoginData.City,citiname);
99 db.insert(FoodCourt_LoginData.Citietable,null,contentValues);
100
101 }
102
103 static class FoodCourt_LoginData extends SQLiteOpenHelper {
104
105 //Creating columns and defining column names and table names
106 private static final String DATABASE_NAME = "FOODCOURT_LOGINDATABASE.sqlite";
107 private static final String TABLENAME = "FOODCOURT_LOGIN";
108 private static final String ID = "id";
109 private static final String USERNAME = "UserNAME";
110 private static final String USERPWD = "UserPwd";
111 private static final String USERADDRESS = "Address";
112 private static final String USERMOBILE = "Mobile";
113 private static final String USEREMAIL = "Email";
114 private static final String Citietable="CityTable";
115 //Citi Column in Citietable
116 public static final String City="Citi";
117 private static final int DATABASE_VERSION=7;
118 SQLiteDatabase db;
119 private Context context;
120
121 //Creating Cities Database table
122 private static final String CreateCities="CREATE TABLE IF NOT EXISTS "+Citietable+" ("+City+" as _id VARCHAR(255))";
123
124 //Creating Userdatabase table
125 private static final String CreateTable = "CREATE TABLE IF NOT EXISTS "+TABLENAME+" ("+ID+" INTEGER PRIMARY KEY,"+ USERNAME + " VARCHAR(255) NOT NULL UNIQUE," + USERPWD + " VARCHAR(255)," + USERADDRESS + " VARCHAR(300)," + USERMOBILE + " INTEGER(10)," + USEREMAIL + " VARCHAR(30))";
126 private static final String DropTable="DROP TABLE IF EXISTS '"+TABLENAME+"'";
127 private static final String DropCities="DROP TABLE IF EXISTS '"+CreateCities+"'";
128 public FoodCourt_LoginData(Context context){
129 super(context,DATABASE_NAME,null,DATABASE_VERSION);
130 this.context=context;
131 }
132
133 //Creating database
134 @Override
135 public void onCreate(SQLiteDatabase db) {
136 try{
137 db.execSQL(CreateTable);
138 db.execSQL(CreateCities);
139 this.db=db;
140 }catch (SQLException e){
141 Message.message(context," "+e);
142 }
143
144 }
145
146 //Updating and deleting database
147 @Override
148 public void onUpgrade(SQLiteDatabase db, int i, int i1) {
149 try {
150 db.execSQL(DropTable);
151 db.execSQL(DropCities);
152 onCreate(db);
153 }catch (SQLException e){
154 Message.message(context," "+e);
155 }
156 }
157 }
158
159}
160
161package com.example.dell.foodcourt;
162
163
164import android.content.Context;
165import android.content.Intent;
166import android.database.Cursor;
167import android.os.Bundle;
168import android.support.v4.app.Fragment;
169import android.support.v4.widget.SimpleCursorAdapter;
170import android.view.LayoutInflater;
171import android.view.View;
172import android.view.ViewGroup;
173import android.widget.ArrayAdapter;
174import android.widget.RelativeLayout;
175import android.widget.Spinner;
176import android.widget.TextView;
177
178import java.util.List;
179import java.util.zip.Inflater;
180
181
182/**
183 * A simple {@link Fragment} subclass.
184 */
185public class HomeFragment extends Fragment {
186
187 String username;
188 Spinner Citieslist;
189 Spinner Arealist;
190 SimpleCursorAdapter mycursoradapter;
191 FoodCourt_UserLoginDatabase foodCourt_userLoginDatabase;
192
193
194 public HomeFragment() {
195 // Required empty public constructor
196 }
197
198
199 @Override
200 public View onCreateView(LayoutInflater inflater, ViewGroup container,
201 Bundle savedInstanceState) {
202 // Inflate the layout for this fragment
203 View rootView = inflater.inflate(R.layout.fragment_home, container, false);
204
205 //Initializing database
206 foodCourt_userLoginDatabase=new FoodCourt_UserLoginDatabase(getActivity());
207 Cursor cursor=foodCourt_userLoginDatabase.CitiesData();
208
209
210 TextView tv=rootView.findViewById(R.id.hometext);
211 username=getActivity().getIntent().getStringExtra("User");
212
213 tv.setText("Welcome to Food Court " + username);
214 //Initializing spinner
215 Citieslist=rootView.findViewById(R.id.spinner);
216
217 //Calling Database method
218
219 //get the data from database into cities string
220 String[] cities = new String[]{FoodCourt_UserLoginDatabase.FoodCourt_LoginData.City};
221 int[] to=new int[]{R.id.spinner};
222 mycursoradapter=new SimpleCursorAdapter(rootView.getContext(),android.R.layout.simple_spinner_dropdown_item,cursor,cities,to,0);
223 mycursoradapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
224 Citieslist.setAdapter(mycursoradapter);
225
226 //to get the area in the dropdown
227 Arealist=rootView.findViewById(R.id.spinner2);
228
229 return rootView;
230 }
231
232
233}
234
2353183-3183/com.example.dell.foodcourt E/AndroidRuntime: FATAL EXCEPTION: main
236 Process: com.example.dell.foodcourt, PID: 3183
237 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dell.foodcourt/com.example.dell.foodcourt.Userhome}: java.lang.IllegalArgumentException: column '_id' does not exist
238 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
239 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
240 at android.app.ActivityThread.-wrap12(ActivityThread.java)
241 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
242 at android.os.Handler.dispatchMessage(Handler.java:102)
243 at android.os.Looper.loop(Looper.java:154)
244 at android.app.ActivityThread.main(ActivityThread.java:6119)
245 at java.lang.reflect.Method.invoke(Native Method)
246 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
247 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
248 Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
249 at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)
250 at android.support.v4.widget.CursorAdapter.init(CursorAdapter.java:186)
251 at android.support.v4.widget.CursorAdapter.<init>(CursorAdapter.java:163)
252 at android.support.v4.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:99)
253 at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:94)
254 at com.example.dell.foodcourt.HomeFragment.onCreateView(HomeFragment.java:62)
255 at android.support.v4.app.Fragment.performCreateView(Fragment.java:2239)
256 at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332)
257 at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574)
258 at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641)
259 at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794)
260 at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)
261 at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200)
262 at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153)
263 at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063)
264 at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
265 at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:554)
266 at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
267 at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
268 at android.app.Activity.performStart(Activity.java:6696)
269 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
270 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)Â
271 at android.app.ActivityThread.-wrap12(ActivityThread.java)Â
272 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)Â
273 at android.os.Handler.dispatchMessage(Handler.java:102)Â
274 at android.os.Looper.loop(Looper.java:154)Â
275 at android.app.ActivityThread.main(ActivityThread.java:6119)Â
276 at java.lang.reflect.Method.invoke(Native Method)Â
277 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)Â
278 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)Â