如何解决如何使用自定义适配器在微调器中显示所选项目?
我正在尝试使用自定义适配器在我的 android 应用程序中实现一个微调器。我能够用数据填充微调器,但我无法选择数据并将其显示在微调器上。我还想在用户没有点击它时显示一个像“选择”这样的文本。 这是我的自定义适配器-
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.List;
public class TransactionModeSpinnerAdapter extends ArrayAdapter<TransactionModeDetails> {
LayoutInflater layoutInflater;
public TransactionModeSpinnerAdapter(@NonNull Context context,int resource,@NonNull List<TransactionModeDetails> transactionModeDetails) {
super(context,resource,transactionModeDetails);
layoutInflater = LayoutInflater.from(context);
}
@NonNull
@Override
public View getView(int position,@Nullable View convertView,@NonNull ViewGroup parent) {
View rowView = layoutInflater.inflate(R.layout.activity_spinner_transaction,null,true);
TransactionModeDetails transactionMode = getItem(position);
TextView txnMode_spn = rowView.findViewById(R.id.spntransaction_tv_txnName);
txnMode_spn.setText(transactionMode.getTransactionModeName());
return rowView;
}
@Override
public View getDropDownView(int position,@NonNull ViewGroup parent) {
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.activity_spinner_transaction,parent,false);
}
TransactionModeDetails transactionMode = getItem(position);
TextView txnMode_spn = convertView.findViewById(R.id.spntransaction_tv_txnName);
txnMode_spn.setText(transactionMode.getTransactionModeName());
return convertView;
}
}
下面是我使用它的地方-
public void populateActiveTransactionModes(){
List<TransactionModeDetails> getTransactionModes = dbHandler.getActiveTransactionModes();
transactionModeListAdapter = new TransactionModeSpinnerAdapter(this,R.layout.activity_spinner_transaction,getTransactionModes);
selectTransactionMode.setAdapter(transactionModeListAdapter);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。