我正在尝试在Android中创建一个简单的Top Trumps应用。我使用SQL lite open helper来存储每张顶级王牌的细节。
目前我有一个浏览卡类,使用列表视图显示卡名称。当有人点击卡片名称时,我希望它显示正确的卡片并使用我的数据库获取卡片的详细信息。
我想通过获取列表视图的位置来做到这一点,所以当用户点击卡片时,它将获得位置并显示所选卡片的正确详细信息。
我想知道这是否可行,并且认为我可以将位置保存在prefs文件中?
这是我班级的代码。
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Browse extends Activity {
private ListView mainListView;
private ArrayAdapter<Card> listAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
mainListView = (ListView) findViewById( R.id.mainListView);
DatabaseHandler dh = new DatabaseHandler(this);
// Remember to drop existing table if it exists
dh.removeAll();
// Insert 6 cards into the database
Log.d("Database: ", "Inserting values..");
dh.addCard(new Card(1, "Katniss Evergreen", "11", "33", "55", "44"));
dh.addCard(new Card(2, "Peeta Melark", "49", "44", "11", "65"));
dh.addCard(new Card(3, "Gale Hawthrone", "87", "32", "98", "50"));
dh.addCard(new Card(4, "Haymitch", "30", "32", "45", "31"));
dh.addCard(new Card(5, "Effie Trinket", "65", "54", "21", "34"));
dh.addCard(new Card(6, "President Snow", "23", "45", "67", "21"));
List<Card> list = dh.getAll();
// Create ArrayAdapter using the list of cards
listAdapter = new ArrayAdapter<Card>(this, R.layout.simplerow, list);
// Set the ArrayAdapter as the ListView's adapter.
mainListView.setAdapter( listAdapter );
}
}
由于
答案 0 :(得分:0)
使用ListView.setOnItemClickListener(listener);
获取列表索引。
答案 1 :(得分:0)
这是我用于旋转器并获得位置的代码。
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
int position = spinner1.getSelectedItemPosition();
@SuppressWarnings("unused")
final Cursor cur = (Cursor) ((AdapterView<?>) spinner1).getItemAtPosition(position);
residentName.setText(c.getString(1));
Resident_Id.setText(c.getString(2));