これは 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);
}