如何使用用户输入获取 Sqlite 数据?
How to fetch Sqlite data using the user input?
目前我正在使用一个应用程序,通过将输入作为他们的总百分比来向学生推荐大学。在第一个 activity 中,我有一个用于百分比的编辑文本。在第二个 activity 中,我想根据输入百分比推荐大学,因为我正在使用 明确的意图 (将百分比从第一个 activity 传递到第二个)但是我不熟悉如何使用该百分比来推荐适合输入百分比的大学列表。
MainActivity.java
public class MainActivity extends AppCompatActivity {
Button submitData;
EditText percentage;
public String pData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setContentView(R.layout.activity_main);
percentage = (EditText)findViewById(R.id.studentpercentage);
submitData = (Button)findViewById(R.id.submitdetails);
submitData.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
pData = percentage.getText().toString();
Intent intent = new Intent(getApplicationContext(), DisplayList.class);
intent.putExtra("Percentage", pData);
startActivity(intent);
}
}
);
}
}
DisplayList.java
public class DisplayList extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setContentView(R.layout.activity_display_list);
TextView percentage = (TextView)findViewById(R.id.textView);
Bundle bundle = getIntent().getExtras();
if (bundle.getString("Percentage")!=null) {
String per = (String)bundle.get("Percentage");
}
this.listView = (ListView)findViewById(R.id.listview);
DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);
databaseAccess.open();
List<String> colleges = databaseAccess.getColleges();
databaseAccess.close();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,colleges);
this.listView.setAdapter(adapter);
}
}
DatabaseAccess.java
/**
* Read all colleges from the database.
*/
public List<String> getColleges() {
List<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT * FROM Ahmednagar", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getString(1));
list.add(cursor.getString(2));
list.add(cursor.getString(3));
list.add(cursor.getString(4));
list.add(cursor.getString(5));
cursor.moveToNext();
}
cursor.close();
return list;
}
- 在 getColleges() 方法中传递 per 变量。
喜欢- getColleges(per);
并更改数据库文件中的方法和查询
喜欢 -
public List<String> getColleges(String per) {
List<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT * FROM Ahmednagar Where Perentage="+per, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getString(1));
list.add(cursor.getString(2));
list.add(cursor.getString(3));
list.add(cursor.getString(4));
list.add(cursor.getString(5));
cursor.moveToNext();
}
cursor.close();
return list;
}
目前我正在使用一个应用程序,通过将输入作为他们的总百分比来向学生推荐大学。在第一个 activity 中,我有一个用于百分比的编辑文本。在第二个 activity 中,我想根据输入百分比推荐大学,因为我正在使用 明确的意图 (将百分比从第一个 activity 传递到第二个)但是我不熟悉如何使用该百分比来推荐适合输入百分比的大学列表。
MainActivity.java
public class MainActivity extends AppCompatActivity {
Button submitData;
EditText percentage;
public String pData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setContentView(R.layout.activity_main);
percentage = (EditText)findViewById(R.id.studentpercentage);
submitData = (Button)findViewById(R.id.submitdetails);
submitData.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
pData = percentage.getText().toString();
Intent intent = new Intent(getApplicationContext(), DisplayList.class);
intent.putExtra("Percentage", pData);
startActivity(intent);
}
}
);
}
}
DisplayList.java
public class DisplayList extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setContentView(R.layout.activity_display_list);
TextView percentage = (TextView)findViewById(R.id.textView);
Bundle bundle = getIntent().getExtras();
if (bundle.getString("Percentage")!=null) {
String per = (String)bundle.get("Percentage");
}
this.listView = (ListView)findViewById(R.id.listview);
DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);
databaseAccess.open();
List<String> colleges = databaseAccess.getColleges();
databaseAccess.close();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,colleges);
this.listView.setAdapter(adapter);
}
}
DatabaseAccess.java
/**
* Read all colleges from the database.
*/
public List<String> getColleges() {
List<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT * FROM Ahmednagar", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getString(1));
list.add(cursor.getString(2));
list.add(cursor.getString(3));
list.add(cursor.getString(4));
list.add(cursor.getString(5));
cursor.moveToNext();
}
cursor.close();
return list;
}
- 在 getColleges() 方法中传递 per 变量。 喜欢- getColleges(per);
并更改数据库文件中的方法和查询
喜欢 -
public List<String> getColleges(String per) {
List<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT * FROM Ahmednagar Where Perentage="+per, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getString(1));
list.add(cursor.getString(2));
list.add(cursor.getString(3));
list.add(cursor.getString(4));
list.add(cursor.getString(5));
cursor.moveToNext();
}
cursor.close();
return list;
}