Android 如何在Listview SingleChoice中预先选择值?

Android 如何在Listview SingleChoice中预先选择值?,android,listview,Android,Listview,如何在ListView单选中预选值?实际上,我正在创建一个应用程序,用户必须选择他的工作类型,如农民等 在我的数据库中,用户现在通过这个列表视图选择farmer,我给他选择改变类型,这就是为什么我必须首先显示他首先选择的内容 这是我的密码 public class UserTypeSettings extends AppCompatActivity { private List<UserTypePrivacySettings> userTypePrivacySettingsList

如何在ListView单选中预选值?实际上,我正在创建一个应用程序,用户必须选择他的工作类型,如农民等

在我的数据库中,用户现在通过这个列表视图选择farmer,我给他选择改变类型,这就是为什么我必须首先显示他首先选择的内容

这是我的密码

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

先生,您能告诉我如何获取列表项的位置吗?先生,您能告诉我如何获取列表项的位置吗?