- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有不同的横向和纵向模式布局。当我从单选组中的单选按钮中选择值并更改方向时,将显示新布局并且所有值都消失。请帮忙。
package com.hp.opiniondesknew;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.os.ParcelableCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* Created by HP on 15-12-2016.
*/
public class FragmentFeedback extends Fragment {
private ArrayList<Questions> questionsArrayList;
HashMap<Questions, String> mapAns=new HashMap<Questions, String>();
private MyAdapter myAdapter;
private ListView listFeedbackQuestions;
private Button btSubmitFeedback;
private String selectedAns;
ArrayList<String> rbAnswersArray = new ArrayList<>();
int yesCount=0,noCount=0;
Questions questionPojo;
public FragmentFeedback() {
// setRetainInstance(true);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.feedback_layout,container,false);
listFeedbackQuestions= (ListView)view.findViewById(R.id.opinion_desk_feedback_lv_questions);
btSubmitFeedback=(Button)view.findViewById(R.id.opinion_desk_feedback_bt_submit);
questionsArrayList= new ArrayList<Questions>();
addlistview();
initializeBtnSubmit(btSubmitFeedback);
return view;
}
private void initializeBtnSubmit( Button btSubmitFeedback) {
btSubmitFeedback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//---------
try
{
for(Map.Entry m:mapAns.entrySet()){
// System.out.println(m.getKey"()+" "+m.getValue());
Log.e("key value",m.getKey()+""+m.getValue());
}
if(mapAns.size()==0 || mapAns.size()< questionsArrayList.size())
{
Toast.makeText(getContext(),"Ans all q",Toast.LENGTH_SHORT).show();
}
else
{
int countYes = Collections.frequency(mapAns.values(), "yes");
{
Log.e("yescount",countYes+"");
}
int countNo = Collections.frequency(mapAns.values(), "no");
{
Log.e("noCount",countNo+"");
Log.e("mapsize",mapAns.size()+"");
}
if(countYes>countNo)
{
Fragment someFragment = new FragmentTestimonial();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, someFragment ); // give your fragment container id in first parameter
// transaction.addToBackStack(null); // if written, this transaction will be added to backstack
transaction.commit();
Log.e("noCount",countNo+"");
Log.e("yescount",countYes+"");
// Log.e("yes is greater",rbAnswersArray.size()+"");
}
else
{
Fragment someFragment = new FragmentSuggestions();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, someFragment ); // give your fragment container id in first parameter
// transaction.addToBackStack(null); // if written, this transaction will be added to backstack
transaction.commit();
Log.e("noCount",countNo+"");
Log.e("yescount",countYes+"");
}
mapAns.clear();
}
}catch (Exception e){e.printStackTrace();}
//-----
}
});
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Feedback");
}
public void addlistview()
{
try
{
for (int i=0;i<5;i++) {
Questions questions = new Questions();
// questions.setQuestion(i+"");
questions.setQuestion("Did you like the performance of the service?");
questions.setQuestionNo(i);
questionsArrayList.add(questions);
myAdapter = new MyAdapter(getContext(), questionsArrayList);
listFeedbackQuestions.setAdapter(myAdapter);
if(selectedState != null) {
listFeedbackQuestions.onRestoreInstanceState(selectedState);
}
// Log.e("pojo",questions.toString());
}
}
catch (Exception e){e.printStackTrace();}
}
public class MyAdapter extends BaseAdapter {
Context context;
ArrayList<Questions> questionsArrayList;
LayoutInflater inflator;
public MyAdapter(Context context, ArrayList<Questions> questionsArrayList) {
this.context = context;
this.questionsArrayList = questionsArrayList;
inflator= LayoutInflater.from(context);
}
@Override
public int getCount() {
return questionsArrayList.size();
}
@Override
public Object getItem(int position) {
return questionsArrayList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// Questions questionsPojo= new Questions();
Holder holder= new Holder();
if(convertView==null)
{
convertView=inflator.inflate(R.layout.feedback_question_row,parent,false);
holder.tvQuestion=(TextView) convertView.findViewById(R.id.opinion_desk_feedback_tv_question);
holder.rGroupButtons=(RadioGroup)convertView.findViewById(R.id.opinion_desk_rg_yes_no);
holder.rbYes=(RadioButton) convertView.findViewById(R.id.opinion_desk_feedback_rb_yes);
holder.rbNo=(RadioButton)convertView.findViewById(R.id.opinion_desk_feedback_rb_no);
convertView.setTag(holder);
}
else
{
holder=(Holder)convertView.getTag();
}
questionPojo=questionsArrayList.get(position);
holder.tvQuestion.setText(questionsArrayList.get(position).getQuestion());
final Holder finalHolder = holder;
holder.rGroupButtons.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (finalHolder.rbYes.isChecked())
{
Log.e("no",position+"");
finalHolder.selectedAnswer="yes";
questionsArrayList.get(position).setAnswer(finalHolder.selectedAnswer);
selectedAns= questionsArrayList.get(position).getAnswer();
rbAnswersArray.add(selectedAns);
yesCount++;
}
else
{
Log.e("no",position+"");
finalHolder.selectedAnswer="no";
questionsArrayList.get(position).setAnswer(finalHolder.selectedAnswer);
selectedAns=questionsArrayList.get(position).getAnswer();
noCount++;
}
mapAns.put(questionsArrayList.get(position),selectedAns);
rbAnswersArray.add(selectedAns);
//
}
});
return convertView;
}
}
public class Holder
{
TextView tvQuestion;
RadioGroup rGroupButtons;
RadioButton rbYes,rbNo, rbSelectedAnswer;
String selectedAnswer, ansNo;
}
@Override
public void onDestroyOptionsMenu() {
super.onDestroyOptionsMenu();
}
// @Override
// public void onSaveInstanceState(Bundle outState) {
// super.onSaveInstanceState(outState);
// }
}
我正在为 ListView 使用 ListView 和自定义适配器。我正在启动来自导航 Activity 的 fragment 反馈。 OnSavedInstanceState 不工作,应用程序在 onRestore 方法中崩溃。我可能做错了什么。
最佳答案
您必须使用 Bundle savedInstanceState
来检索您的值。您可以将它们保存在 onSaveInstanceState
方法中。
这里是文档的链接 https://developer.android.com/guide/components/activities/activity-lifecycle.html
关于android - 如何在方向更改时保留 android ListView 中单选按钮的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543726/
HTML 部分,只是我代码的一部分: HP: SP: EA: ED: PA: PD:
我有这个简单的脚本。我正在尝试获取选中的值并将它们添加到禁用输入框中的运行总计中。我知道它正在被选中,但它没有更新到输入框,我不确定为什么。谁能帮帮我? function updateF
我在使用自定义背景的单选按钮/复选框时遇到了问题。我在这里设计了它们的样式:Quick Tip: Easy CSS3 Checkboxes and Radio Buttons .主要部分是input在
我可以预见地读取 jQueryUI 单选按钮的值,但是,我无法以编程方式设置它。无论我使用哪种方法更改单选按钮的值,jQueryUI 界面都不会更新其界面。 Yes No
没有展开时 点击展开之后 <div class="flashread_item_box_time"> <span class="
这里是 JQuery 新手。 我有一个大约有 16 个字段的搜索表单,其中大部分是文本框。其余的都是下拉菜单。我在这些字段下方有 3 个单选按钮。当选择第一个时,表单中的某些字段应被禁用。当选择第二个
我目前正在构建一个 Fiori 应用程序用于查看事件(票证)。我必须创建一个饼图,其中包含票证的所有不同状态。当我单击图表的一部分时,它会将我带到包含该状态的所有票证的列表。我可以选择饼图的多个状态,
此代码将在使用 reloadData 刷新 UITableView 后恢复单元格选择: NSIndexPath *selectedIndexPath = [self.tableView indexPa
我正在尝试对 UITableView 单元格进行自定义选择。为此,我在我的单元格上方创建了 UIView,它现在在触摸时出现/消失。但问题是当我按下单元格选择时出现。如果那时我选择任何其他行,它也会被
我所有的复选框、单选框和文本输入都在 ID 的末尾附加了“_boom”。我想抓取这些 id 的页面,检测更改以查看其中是否有任何一个与其原始状态不同,如果是,则将 CSS 应用于页面上名为“保存”的按
我正在寻找一种方法,使多选列表框应显示为普通的单选组合框,但在单击时它应作为允许多选的列表框,如下所示,如电子表格中所示。我正在寻找 CSS HTML 和 javascript 而非 Jquery 中
我有一个 HTML 我想显示为“列表框”(一个同时显示多个元素的框,而不是下拉框)。但是,我只想允许选择一个元素。我还想将盒子的高度(通过 CSS)设置为其容器大小的 100%。 这三件事似乎是相互排
我有一个包含三个部分的付款表格。基本上,第一个是带有乘数的“单选”列表,第二个是带有设置值的“复选框”列表,第三个是带有乘数的下拉列表 ==> (jsfiddle) .为清楚起见,我插入了一个文本框来
我想删除单选按钮,只显示是或否标签。为此,我隐藏了 radio 输入并使用 css3 选择器 (:checked + label) 根据选择更改背景颜色。但由于某种原因,这不起作用。 HTML(来自
我正在使用这个插件http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/#single对于多选,并且希望也可以在同一
我收到了这段代码,但我似乎无法正常工作,我查看了之前的问题,但找不到任何与之完全相同的代码。也许这完全是错误的,应该重新开始? 我想要做的是在选择单选按钮时显示一个 div。这是我的代码: jQue
我试图在用户点击输入(单选、复选框或选择)时移除焦点背景,但它不起作用。这些是我放在元素上的样式: .form-holder input[type="radio"]:focus, .form-
我正在使用 Bootstrap 4 并想使用单选按钮和复选框按钮组,但按钮显示的是实际的单选按钮和复选框 UI 元素,如下所示: 上面的例子直接摘自文档。我试过删除并重新安装 Bootstrap 4,
我正在使用 Collection View 进行水平滚动。它工作得很好。现在我想为选择任何单元格设置任何效果。所以,我写了这段代码” func collectionView(collectionVi
我有一个按钮组,其中包含必须充当单选按钮的几个项目。我还需要将它们分成几行并跨越容器的整个宽度。 为此,我使用了 Bootstrap 的类 btn-group-justified ,然后我拆分 元素分
我是一名优秀的程序员,十分优秀!