입력 내용이 autoCompleteTextView에 입력되면 동일한 제안 사항이 여러 번 표시되는 프로그램에 문제가 계속 발생합니다. 이 문제가 발생하지 않도록 솔루션을 통해 실제로 할 수 있습니다. 이미지에 대한 링크는 아래 입니다 :AutoCompleteTextView suggestions repeating
이 데이터베이스에 저장된 값은 AutoCompleteTextView에 대한 제안으로 사용되어야하는 과제입니다.
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>
다음은 MainActivity에 대한 코드입니다
의 일어나는 당신은 SQLite는 테이블 – akhilesh0707
확인'cursor' 크기로 삽입 된 응용 프로그램 기록을 실행할 때마다 당신은 실제 문제를 얻을 수 있기 때문에 – akhilesh0707
당신이 옳았 akhilesh0707, 프로그램은 반복에 값을 삽입 유지 @ 데이터베이스 답변 주셔서 감사합니다. –