gpt4 book ai didi

java - ListView 所选项目突出显示来自数据库?

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:50 25 4
gpt4 key购买 nike

我是android创建宗教书籍的初学者,我有两个 Activity 都有 ListView ,当我单击从第一个 Activity 切换到第二个 Activity 的任何特定项目时,数据来自sqlite数据库,在第二个 Activity 中显示所有详细信息,也有 ListView 我的问题如何突出显示第二个列表项目行,仅突出显示特定项目!这里的例子如图所示,我实际上想要什么

picture one verse select

picture two verse highlight

如果有人点击第 13 节,所有第 1-25 节都会显示,但仅在下一个 Activity 中突出显示第 13 节,这是我的代码,如何做到这一点

    import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


import java.util.ArrayList;

public class Chapters extends AppCompatActivity {
private ListView listView;
private ArrayList<String> stringArrayList;
private ArrayAdapter<String> adapter;
private DatabaseHelper mDBHelper;
private SQLiteDatabase mDb;
private int booknumber;
private String bookname;
TextView setbookname;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chapters);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setbookname=(TextView)findViewById(R.id.bookname);
Intent mIntent = getIntent();
booknumber= mIntent.getIntExtra("booknumber", 0);
bookname=mIntent.getStringExtra("bookname");


setbookname.setText(bookname);

toolbar.setTitle("");
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}

Toast.makeText(this, ""+booknumber, Toast.LENGTH_SHORT).show();

setData();

listView =findViewById(R.id.list);

adapter = new ChapterAdopter(Chapters.this, R.layout.item_listview, stringArrayList);

listView.setAdapter(adapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

int chapternumber=position+1;

Toast.makeText(Chapters.this, ""+chapternumber, Toast.LENGTH_SHORT).show();

Intent intent=new Intent(Chapters.this,Verse.class);

intent.putExtra("Booknumber",booknumber);

intent.putExtra("Chapternumber",chapternumber);


startActivity(intent);
}
});

}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
onBackPressed();

}

return super.onOptionsItemSelected(item);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=getMenuInflater();

inflater.inflate(R.menu.chapter,menu);
MenuItem menuItem=menu.findItem(R.id.chapter_search);

SearchView searchView=(SearchView)menuItem.getActionView();



searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}

@Override
public boolean onQueryTextChange(String s) {
return false;
}
});
return super.onCreateOptionsMenu(menu);
}

private void setData() {



stringArrayList = new ArrayList<>();

mDBHelper = new DatabaseHelper(this);
mDb = mDBHelper.getReadableDatabase();

Cursor cursor = mDb.rawQuery("select DISTINCT c from t_asv where b="+booknumber, new String[]{});


if(cursor!=null && cursor.getCount() > 0)
{
if (cursor.moveToFirst())
{
do {
stringArrayList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
}
}


}



package bible.swordof.God;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class Verse extends AppCompatActivity {
private ListView listView;
private ArrayList<String> stringArrayList;
private ArrayAdapter<String> adapter;
private DatabaseHelper mDBHelper;
private SQLiteDatabase mDb;
private int booknumber;
private int chapternumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verse);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Intent mIntent = getIntent();
booknumber = mIntent.getIntExtra("Booknumber", 0);
chapternumber= mIntent.getIntExtra("Chapternumber", 0);
toolbar.setTitle("");
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}

setData();

listView = findViewById(R.id.list);

adapter = new VerseAdopter(Verse.this, R.layout.item_listview, stringArrayList);


Toast.makeText(this, ""+booknumber, Toast.LENGTH_SHORT).show();

listView.setAdapter(adapter);


}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
onBackPressed();
}

return super.onOptionsItemSelected(item);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.chapter, menu);
MenuItem menuItem = menu.findItem(R.id.chapter_search);

SearchView searchView = (SearchView) menuItem.getActionView();


searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}

@Override
public boolean onQueryTextChange(String s) {
return false;
}
});
return super.onCreateOptionsMenu(menu);
}

private void setData() {


stringArrayList = new ArrayList<>();

mDBHelper = new DatabaseHelper(this);
mDb = mDBHelper.getReadableDatabase();

Cursor cursor = mDb.rawQuery("select v FROM t_asv where b="+booknumber+" AND c="+chapternumber+";", new String[]{});


if (cursor != null && cursor.getCount() > 0) {
if (cursor.moveToFirst()) {
do {
stringArrayList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
}
}


}

最佳答案

您似乎将选定的经文作为章节传递,然后在查询中 Cursorcursor = mDb.rawQuery("select v FROM t_asv where b="+booknumber+"AND c="+chapternumber+";", new String[]{}); 因此选择传递的书籍/章节中的所有经文。

您可能需要将点击的值作为诗句以及书籍和章节传递,并使用在 WHERE 子句中包含诗句的查询,也许 cursor = mDb.rawQuery("select v FROM t_asv where b="+booknumber+"AND c="+chapternumber+"AND v="+ versenumber + ";", new String[]{});

关于java - ListView 所选项目突出显示来自数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com