【问题标题】:Set text on Spinner在 Spinner 上设置文本
【发布时间】:2012-10-31 05:20:13
【问题描述】:

这是 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);

}

当交易意图打开时,它会获取 事务.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);

}

【问题讨论】:

标签: android android-spinner


【解决方案1】:

不久前使用包含字符串列表的微调器对此进行了测试,似乎工作正常。可能会帮助某人。

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);
        }
    }

}

:)

【讨论】:

    【解决方案2】:

    使用以下代码的微调器的第一个 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);
    

    【讨论】:

    • 当我放 sSpnTermsCode.setSelection(0) 时,它会显示第一个。等待!我在列表视图中显示数据,我想要的是当我单击列表视图上的第一个数据时,意图打开并在微调器中显示值。对于编辑文本(余额),它的工作原理如上所示。仅适用于微调器。
    • @SheilaPerumal 将索引值保存在一个变量中并传递给意图,然后写入 mSpnTermsCode.setSelection(indexvalue);如果您对此有疑问,请告诉我。
    • 我不知道该怎么做。我认为它像 editText 一样简单:/ 我已经从列表视图中获取值并将其传递给意图,唯一的问题是我无法在微调器中显示它。我试过你的代码 sSpnTermsCode.setSelection(1) 并运行第二个出现。
    • @SheilaPerumal 在 onitemclick 事件上传递索引并传递该索引而不是 1,然后尝试。
    • 不,还有一些问题
    【解决方案3】:

    如果您使用的是 Kotlin,这是一个扩展功能,用于根据 user3786552 的 answer 设置 spinner 的文本

    fun Spinner.setSpinnerText(text: String) {
            for (i in 0 until this.adapter.count) {
                if (this.adapter.getItem(i).toString().contains(text)) {
                    this.setSelection(i)
                }
            }
        }
    

    【讨论】:

      【解决方案4】:

      对于 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);
      

      在适配器中你必须设置你的列表。

      【讨论】:

      • 总是尝试给出完整的答案.. mContext、productaddapter、productname 是什么???
      • @SheilaPerumal 那么你想用微调器做什么??
      • @JigneshDer 我在列表视图中显示数据,我想要的是当我单击列表视图上的第一个数据时,打开一个意图并在微调器中显示值。对于编辑文本(余额),它的工作原理如上所示。仅适用于微调器。我在上面编辑了我的代码。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      相关资源
      最近更新 更多