Android 如何在Listview SingleChoice中预先选择值?
如何在ListView单选中预选值?实际上,我正在创建一个应用程序,用户必须选择他的工作类型,如农民等 在我的数据库中,用户现在通过这个列表视图选择farmer,我给他选择改变类型,这就是为什么我必须首先显示他首先选择的内容 这是我的密码Android 如何在Listview SingleChoice中预先选择值?,android,listview,Android,Listview,如何在ListView单选中预选值?实际上,我正在创建一个应用程序,用户必须选择他的工作类型,如农民等 在我的数据库中,用户现在通过这个列表视图选择farmer,我给他选择改变类型,这就是为什么我必须首先显示他首先选择的内容 这是我的密码 public class UserTypeSettings extends AppCompatActivity { private List<UserTypePrivacySettings> userTypePrivacySettingsList
public class UserTypeSettings extends AppCompatActivity {
private List<UserTypePrivacySettings> userTypePrivacySettingsList;
private ListView userTypeListView;
private int listpos;
public int getListpos() {
return listpos;
}
public void setListpos(int listpos) {
this.listpos = listpos;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_type_settings);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setActionbar();
initViews();
}
private void initViews() {
userTypeListView = (ListView) findViewById(R.id.userTypeListView);
userTypeListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
userTypePrivacySettingsList = new Parse(UserTypeSettings.this).parseUserType();
userTypeListView.setAdapter(new SingleChoiceArrayadapter(this, userTypePrivacySettingsList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
setListpos(position);
return super.getView(position, convertView, parent);
}
});
userTypeListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
userTypeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.e("check user stype", userTypePrivacySettingsList.get(position).getUser_type());
}
});
}}
public类UserTypeSettings扩展AppCompative活动{
私有列表用户类型私有设置列表;
私有ListView用户类型ListView;
私有int listpos;
public int getListpos(){
返回listpos;
}
公共无效setListpos(int-listpos){
this.listpos=listpos;
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u user\u type\u settings);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
setActionbar();
initViews();
}
私有void initViews(){
userTypeListView=(ListView)findViewById(R.id.userTypeListView);
userTypeListView.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
userTypePrivacySettingsList=新解析(UserTypeSettings.this).parseUserType();
setAdapter(新的SingleChoiceArrayaAdapter(这是userTypePrivacySettingsList){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
setListpos(位置);
返回super.getView(position、convertView、parent);
}
});
userTypeListView.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
userTypeListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.e(“检查用户stype”,userTypePrivacySettingsList.get(position.getUser_type());
}
});
}}
这是我的适配器类
public class SingleChoiceArrayadapter extends ArrayAdapter<UserTypePrivacySettings> {
public SingleChoiceArrayadapter(Context context, List<UserTypePrivacySettings> usertypes) {
super(context, 0, usertypes);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(android.R.layout.simple_list_item_single_choice, parent, false);
}
UserTypePrivacySettings user = getItem(position);
final CheckedTextView textView = (CheckedTextView) super.getView(position, convertView, parent);
textView.setText(user.getUser_type());
textView.setTextColor(getResources().getColor(R.color.kisanColorGreen));
return convertView;
}
@Override
public long getItemId(int position) {
return getItem(position).getUser_type().hashCode();
}
@Override
public boolean hasStableIds() {
return true;
}
}
公共类SingleChoiceArrayadapter扩展了ArrayAdapter{
公共SingleChoiceArrayadapter(上下文、列表用户类型){
超级(上下文,0,用户类型);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(android.R.layout.simple\u list\u item\u single\u choice,parent,false);
}
UserTypePrivacySettings用户=getItem(位置);
final CheckedTextView textView=(CheckedTextView)super.getView(position,convertView,parent);
textView.setText(user.getUser_type());
setextcolor(getResources().getColor(R.color.kisanColorGreen));
返回视图;
}
@凌驾
公共长getItemId(int位置){
返回getItem(position).getUser_type().hashCode();
}
@凌驾
公共布尔表ID(){
返回true;
}
}
以下是我如何在简单适配器上设置预选项的方法。但它的工作原理应该和你现在的一样。如果不让我知道
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_single_choice, android.R.id.text1, arrayList);
int selectedPosition;
userTypeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedPosition = position;
}
});
userTypeListView.performItemClick(userTypeListView.getAdapter().getView(position, null, null), position, position);
ArrayAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u single\u选项,android.R.id.text1,arrayList);
int-selectedPosition;
userTypeListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
selectedPosition=位置;
}
});
performItemClick(userTypeListView.getAdapter().getView(position,null,null),position,position);
以下是我如何在简单适配器上设置预选项的方法。但它的工作原理应该和你现在的一样。如果不让我知道
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_single_choice, android.R.id.text1, arrayList);
int selectedPosition;
userTypeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedPosition = position;
}
});
userTypeListView.performItemClick(userTypeListView.getAdapter().getView(position, null, null), position, position);
ArrayAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u single\u选项,android.R.id.text1,arrayList);
int-selectedPosition;
userTypeListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
selectedPosition=位置;
}
});
performItemClick(userTypeListView.getAdapter().getView(position,null,null),position,position);
先生,您能告诉我如何获取列表项的位置吗?先生,您能告诉我如何获取列表项的位置吗?