我想用Android Studio进行问卷调查。每个问题都可以回答是或否。问题是,我有一些后续问题(如果问题1回答是,那么我有3个后续问题要回答)。也许重要的是要知道,如果用户点击了某个问题的“是”按钮,那么只有后续问题(如果他没有点击“否”,则永远不会有后续问题)
我是一个绝对的初学者,所以请告诉我你是否有其他想法来解决这个问题。
我的想法是创建自定义列表视图,如果用户点击第一个答案,我想更新列表并添加问题(如果现在需要它们)(如果新问题即将结束,那就没问题了。清单)。
这是我的代码,直到现在:
questions_activity.xml:
<?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:
<?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:
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;
}
}
OnClickListener根本不起作用。我知道,我需要在getView中使用RadioGroup做一些事情,但我不知道如何(已经尝试从这里开始使用解决方案(Customized ListView with TextView, TextView, RadioGroup in Android),但它没有用。
是否可以添加新问题并删除它们,如果他正在改变他的意见或是否有更好的解决方案?
答案 0 :(得分:0)
我会在onClick Listener部分为您提供解决方案
尝试以下任何步骤
1。尝试直接使用onClick listener
中的onCreate method
2 您可以实施View.OnClickListener
,然后创建onclick method
。在onclick method
内,您现在可以执行您想要执行的任何操作