首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android系统中的动态问卷

Android系统中的动态问卷
EN

Stack Overflow用户
提问于 2015-09-20 20:25:49
回答 1查看 1.4K关注 0票数 0

我想用Android做一个问卷调查。每个问题都可以用“是”或“否”来回答。问题是,我有一些后续问题(f.e。如果问题1回答是,那么我有三个后续问题要回答)。也许重要的是要知道,只有当用户单击“是”按钮来回答一些问题时,才会有后续问题(如果用户单击“否”,就不会有后续问题)。

我是一个绝对的初学者,所以告诉我,如果你有其他的想法来解决这个问题。

我的想法是创建一个自定义的列表视图,如果用户正在单击第一个答案,我希望更新列表并在需要时添加问题(如果新的问题到达列表的末尾,就可以了)。

到目前为止,这是我的准则:

questions_activity.xml:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/questionsListView"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:descendantFocusability="blocksDescendants"/>
</RelativeLayout>

itemView.xml:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Medium Text"
    android:id="@+id/question"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />
<RadioGroup
    android:orientation="horizontal"
    android:id="@+id/radioGroup"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/question">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yes"
        android:id="@+id/yesButton"
        android:layout_marginLeft="135dp" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="No"
        android:id="@+id/noButton"
        android:layout_marginRight="50dp"/>

</RadioGroup>


</RelativeLayout>

LoggedInActivity.java:

代码语言:javascript
运行
复制
public class LoggedInActivity extends Activity {
public List<Questions> myquestions = new ArrayList<Questions>();
public List<Integer> answerList = new ArrayList<Integer>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.questions_activity);

    populateQuestions();
    populateListView();
    registerClickCallback();


}

private void registerClickCallback(){
    ListView list =  (ListView) findViewById(R.id.questionsListView);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked, int position, long id) {
            boolean clickedQuestion = myquestions.get(position).getAnswer();

        }
    });
}

private void populateQuestions() {
    myquestions.add(new Questions("Question1"));
    myquestions.add(new Questions("Question2"));
    myquestions.add(new Questions("Question3"));


}

private void populateListView() {
    ArrayAdapter<Questions> adapter = new MyListAdapter();
    ListView list = (ListView) findViewById(R.id.questionsListView);
    list.setAdapter(adapter);
}



private class MyListAdapter extends ArrayAdapter<Questions> {
    public MyListAdapter() {
        super(LoggedInActivity.this, R.layout.item_view, myquestions);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
        }

        Questions currentQuestion = myquestions.get(position);

        TextView question = (TextView) itemView.findViewById(R.id.question);
        question.setText(currentQuestion.getQuestion());

        RadioGroup answers = (RadioGroup)         itemView.findViewById(R.id.radioGroup);

        return itemView;
    }
}
  1. OnClickListener根本不起作用。我知道,我需要在RadioGroup in getView中做些什么,但我不知道如何(已经尝试了从这里获得解决方案(Customized ListView with TextView, TextView, RadioGroup in Android),但它没有起作用。
  2. 如果他正在改变自己的观点,或者有更好的解决办法,是否可以增加新的问题并删除这些问题?
EN

回答 1

Stack Overflow用户

发布于 2015-09-20 20:45:39

我将为您提供onClick侦听器部分的解决方案。

尝试以下任何步骤

1.尝试直接在onCreate method中使用onClick listener

2您可以实现View.OnClickListener,然后创建onclick method。在onclick method内部,您现在可以执行您想要执行的任何操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32683946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档