这是AccountListView,它检索并显示我已经在列表视图中添加到数据库中的数据,我已经添加了现金和银行账户,当我点击列表视图中的现金时它打开了交易意图,其中一个微调器,其上添加了现金和银行,我希望它显示我在列表视图中单击的数据。请注意,现金和银行显示的余额仅为微调器成功。
public class AccountListActivity extends Activity implements OnClickListener, OnItemClickListener {
private ListView AccountListView;
private Button addNewAccountButton;
private ListAdapter AccountListAdapter;
private ArrayList<AccountDetails> pojoArrayList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
AccountListView = (ListView) findViewById(R.id.AccountListView);
AccountListView.setOnItemClickListener(this);
registerForContextMenu(AccountListView);
addNewAccountButton = (Button) findViewById(R.id.namesListViewAddButton);
addNewAccountButton.setOnClickListener(this);
pojoArrayList = new ArrayList<AccountDetails>();
AccountListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
AccountListView.setAdapter(AccountListAdapter);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Menu");
menu.add(0, v.getId(), 0, "Update");
menu.add(0, v.getId(), 0, "Delete");
menu.add(0, v.getId(), 0, "Cancel");
}
public List<String> populateList(){
List<String> AccountList = new ArrayList<String>();
DatabaseAdapter openHelperClass = new DatabaseAdapter(this);
SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase();
Cursor cursor = sqliteDatabase.query(DatabaseAdapter.TABLE_ACCOUNT, null, null, null, null, null, null);
startManagingCursor(cursor);
while (cursor.moveToNext()) {
String aBNAME = cursor.getString(cursor.getColumnIndex(DatabaseAdapter.KEY_BANKNAME));
String aBTYPE = cursor.getString(cursor.getColumnIndex(DatabaseAdapter.KEY_TYPE));
String aAccNum = cursor.getString(cursor.getColumnIndex(DatabaseAdapter.KEY_ACCNUM));
String aBal = cursor.getString(cursor.getColumnIndex(DatabaseAdapter.KEY_BALANCE));
String aEDate = cursor.getString(cursor.getColumnIndex(DatabaseAdapter.KEY_EXPIRYDATE));
AccountDetails ugPojoClass = new AccountDetails();
ugPojoClass.setaBankName(aBNAME);
ugPojoClass.setaAccountType(aBTYPE);
ugPojoClass.setaAccountNumber(aAccNum);
ugPojoClass.setaBalance(aBal);
ugPojoClass.setaDate(aEDate);
pojoArrayList.add(ugPojoClass);
AccountList.add(aBNAME);
}
sqliteDatabase.close();
return AccountList;
}
@Override
public void onItemClick( AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Toast.makeText(getApplicationContext(), "Clicked on :" + arg2, Toast.LENGTH_SHORT).show();
Intent updateDeleteAccountIntent = new Intent(this, Transaction.class);
AccountDetails clickedObject = pojoArrayList.get(arg2);
Bundle dataBundle = new Bundle();
dataBundle.putString("clickedBankName", clickedObject.getaBankName());
dataBundle.putString("clickedBankType", clickedObject.getaAccountType());
dataBundle.putString("clickedBankNumber", clickedObject.getaAccountNumber());
dataBundle.putString("clickedBankBalance", clickedObject.getaBalance());
dataBundle.putString("clickedExpiryDate", clickedObject.getaDate());
updateDeleteAccountIntent.putExtras(dataBundle);
startActivity(updateDeleteAccountIntent);
}
当交易意图打开时,它取值的 Transaction.java
public class Transaction extends Activity implements OnClickListener{
private Spinner Category, Account, typerp;
private TextView tvSaveNew, tvDisplayDate;
private EditText ItemName, Amount, Notes;
private EditText Balance, Result;
private ImageButton TransDate, ImageButton1;
private Button save, newt;
private String bundledBankName;
private String bundledBankType;
private String bundledBankNumber;
private String bundledBankBalance;
private String bundledBankDate;
private String BankNameValue;
private String NewBankBalanceValue;
private String BankTypeValue;
private String BankNumberValue;
private String BankBalanceValue;
private String BankDateValue;
private int year;
private int month;
private int day;
static final int DATE_DIALOG_ID = 999;
private ArrayList<TransactionDetails> TransactionDetailsObjArrayList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.transaction);
save = (Button) findViewById(R.id.TbtnSave);
newt = (Button) findViewById(R.id.btnNewTran);
TransDate = (ImageButton) findViewById(R.id.transDate);
Category = (Spinner) findViewById(R.id.Tcategory);
Account = (Spinner) findViewById(R.id.TAccount);
typerp = (Spinner) findViewById(R.id.TypeR);
ItemName = (EditText) findViewById(R.id.TransItemName);
Amount = (EditText) findViewById(R.id.TransAmount);
Notes = (EditText) findViewById(R.id.tranNote);
Balance = (EditText) findViewById(R.id.RetrieveBalance);
Result = (EditText) findViewById(R.id.ResultBalance);
tvDisplayDate = (TextView) findViewById(R.id.ttvDisplayDate);
save.setOnClickListener(this);
newt.setOnClickListener(this);
setCurrentDateOnView();
TransDate.setOnClickListener(this);
TransactionDetailsObjArrayList = new ArrayList<TransactionDetails>();
loadSpinnerData();
Bundle takeBundledData = getIntent().getExtras();
bundledBankName = takeBundledData.getString("clickedBankName");
bundledBankBalance = takeBundledData.getString("clickedBankBalance");
Account.setSelection(0);
Balance.setText(bundledBankBalance);
}
答案 0 :(得分:15)
刚才用一个包含字符串列表的微调器测试了这个,似乎工作正常。可以帮助别人。
public void setSpinText(Spinner spin, String text)
{
for(int i= 0; i < spin.getAdapter().getCount(); i++)
{
if(spin.getAdapter().getItem(i).toString().contains(text))
{
spin.setSelection(i);
}
}
}
:)
答案 1 :(得分:1)
使用以下代码的第一个微调器的SetAdapter。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PaymentTerms_NewInvoice_Activity.this, android.R.layout.simple_spinner_item, mTempArray);
mSpnTermsCode.setAdapter(adapter);
现在使用以下代码将Spinner的第一项显示为选定项目。
mSpnTermsCode.setSelection(0);
答案 2 :(得分:0)
对于Spinner,您必须将Adapter设置为绑定数据
Spinner Account;
ArrayAdapter<String> productaddapter;
List<String> productname=new ArrayList<String>();
//Fill your data in productname arraylist..
productaddapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item, productname);
Account.setAdapter(productaddapter);
在适配器中你必须设置你的列表。
答案 3 :(得分:0)
如果您使用的是Kotlin,这是一个扩展功能,可以根据用户3786552的answer
设置微调框的文本fun Spinner.setSpinnerText(text: String) {
for (i in 0 until this.adapter.count) {
if (this.adapter.getItem(i).toString().contains(text)) {
this.setSelection(i)
}
}
}