私は、入力がautoCompleteTextViewに与えられたときに、同じ提案を何回も表示する私のプログラムで問題が発生し続ける。私は実際にこれが起こらないようにするための解決策でできました。画像へのリンクが 以下の通りである:AutoCompleteTextViewの提案を繰り返す
これはデータベースに格納された値はautoCompleteTextViewための提案として使用される割り当てのためのものです。ここでMainActivityのためのコードは次のとおりです。続き
package com.example.ayush.sqliteautocompleteapplication;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
String[] companyNames;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDatabase database = new myDatabase(this);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoComplete);
companyNames = new String[]{"Apple INC", "Samsung Electronics", "Amazon.com", "Microsoft", "Hitachi", "IBM", "Sony", "Huawei", "Panasonic", "Hewlett Packard Enterprises"};
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < companyNames.length; i++) {
database.insert_Data(companyNames[i]);
}
Cursor cursor = database.showProduct();
while (cursor.moveToNext()) {
list.add(cursor.getString(cursor.getColumnIndex("name")));
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.support_simple_spinner_dropdown_item,list);
textView.setAdapter(adapter);
}
}
はSQLiteOpenHelperクラスのコードです:
package com.example.ayush.sqliteautocompleteapplication;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by ayush on 10/2/2017.
*/
public class myDatabase extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "contactsManager";
private static final String TABLE_COMPANIES = "companies";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
public myDatabase(Context context) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_COMPANIES + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT" +
")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public boolean insert_Data(String name)
{
SQLiteDatabase db=getWritableDatabase(); //to write data into the table
ContentValues values=new ContentValues();
values.put(KEY_NAME,name); //putting the values into ContentValue
long res=db.insert(TABLE_COMPANIES,null,values); //Create a temp variable
if(res==-1)
{
return false; //if data is not inserted return false
}
else
{
return true; //else return true
}
}
public Cursor showProduct() {
//fetching data
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from companies", null);
if (cursor != null)
return cursor;
else
return null;
}
}
そして、ここでは(念のため)layout.xmlファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.example.ayush.sqliteautocompleteapplication.MainActivity">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/autoComplete"
android:completionThreshold="1"
/>
</LinearLayout>
その出来事あなたはSQLiteのテーブル – akhilesh0707
チェック 'cursor'サイズに挿入されたアプリの記録を実行するたびに、あなたは、実際の問題を取得するため – akhilesh0707
あなたは正しかったakhilesh0707、プログラムが繰り返しに値を挿入まま@データベース。あなたの答えをありがとう。 –