Android 设置查看寻呼机id以显示查看寻呼机组
当尝试设置id以编程方式查看寻呼机时,应用程序出现强制转换错误。 如果不以编程方式设置id,则只能查看第一视图寻呼机内容。 如何以编程方式创建视图寻呼机,使视图寻呼机一个接一个地显示? 我试图将视图寻呼机添加到xml的线性布局中。当我将setId用于查看寻呼机时,它就崩溃了。 它甚至不进入片段的onCreateView。那么它指的是哪个文本视图Android 设置查看寻呼机id以显示查看寻呼机组,android,android-viewpager,Android,Android Viewpager,当尝试设置id以编程方式查看寻呼机时,应用程序出现强制转换错误。 如果不以编程方式设置id,则只能查看第一视图寻呼机内容。 如何以编程方式创建视图寻呼机,使视图寻呼机一个接一个地显示? 我试图将视图寻呼机添加到xml的线性布局中。当我将setId用于查看寻呼机时,它就崩溃了。 它甚至不进入片段的onCreateView。那么它指的是哪个文本视图 java.lang.ClassCastException: android.widget.TextView cannot be cast to
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.view.ViewGroup
at androidx.fragment.app.FragmentTransition.configureTransitionsOrdered(FragmentTransition.java:314)
at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:138)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1862)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1820)
at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManagerImpl.java:1695)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:299)
at androidx.fragment.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:256)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:22071)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1308)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.widget.ScrollView.onMeasure(ScrollView.java:350)
at android.view.View.measure(View.java:22071)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:724)
at android.view.View.measure(View.java:22071)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2422)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1504)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1761)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
主要活动
private fun createviewpagers(listOfQuestionnaire: List<Questionnaire>) {
for (i in 0 until listOfQuestionnaire.size) {
var viewPager = ViewPager(context)
viewPager.id = View.generateViewId()
viewpagerAdapter= ProgramQuestionAnswerActivityAdapter(supportFragmentManager,listOfQuestionnaire.get(i))
viewPager.setClipToPadding(false)
viewPager.setPadding(70, 0, 70, 0)
viewPager.setPageMargin(40)
viewPager.setOffscreenPageLimit(8)
viewgroupmain.addView(viewPager)
viewPager.adapter= viewpagerAdapter;
}
}
程序问题应答器片段
public class ProgramQuestionAnswerFragment extends Fragment implements TimePickerDialogViewInterface {
@BindView(R.id.viewgroup)
LinearLayout mainparentviewgroup;
@BindView(R.id.textCurrentQuestionnumber)
TextView textCurrentQuestionnumber;
@BindView(R.id.ivnext)
ImageView tvnext;
@BindView(R.id.ivback)
ImageView tvback;
Context context;
QuestionnaireQuestions acttivities;
private int pos, size;
private String name;
private Unbinder unbinder;
List<QuestionnaireAnswer> selectedanswer = new ArrayList<>();
private Integer timeclicked = 0;
TextView txtTime;
private SimpleDateFormat displayableTimeFormatter = new SimpleDateFormat("HH:mm", Locale.getDefault());
public static ProgramQuestionAnswerFragment newInstance(String name, QuestionnaireQuestions activities, int position, int activitiesListsize) {
ProgramQuestionAnswerFragment f = new ProgramQuestionAnswerFragment();
Bundle b = new Bundle();
b.putSerializable("activities", new Gson().toJson(activities));
b.putInt("pos", position);
b.putString("name", name);
b.putInt("size", activitiesListsize);
f.setArguments(b);
return f;
}
@Override
public void onAttach(Context _context) {
super.onAttach(_context);
if (_context instanceof Activity) {
context = _context;
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.e(" on create ", "view");
View view = inflater.inflate(R.layout.programme_questionnaire_group, container, false);
acttivities = new Gson().fromJson(getArguments().getString("activities"), QuestionnaireQuestions.class);
pos = getArguments().getInt("pos");
size = getArguments().getInt("size");
name = getArguments().getString("name");
unbinder = ButterKnife.bind(this, view);
mainparentviewgroup.setTag(0);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (acttivities != null) {
if (acttivities.getQuestionTypeId()==( SINGLE_ANSWER_QUESTION_TYPE_ID)) {
createFreeTextQuestionAnswer(acttivities);
}
}
}
private void createFreeTextQuestionAnswer(QuestionnaireQuestions activities) {
LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
View itemView = vi.inflate(R.layout.programme_question_free_text_layout, mainparentviewgroup, false);
TextView txtTitle = itemView.findViewById(R.id.tvtitle);
TextView txtBody = itemView.findViewById(R.id.tvbody);
txtTitle.setText(name);
txtBody.setText(activities.getQuestion());
mainparentviewgroup.addView(itemView);
}
公共类程序QuestionAnswerFragment扩展片段实现TimePickerDialogViewInterface{
@BindView(R.id.viewgroup)
LinearLayout MainParentView组;
@BindView(R.id.textCurrentQuestionnumber)
TextView textCurrentQuestionnumber;
@BindView(R.id.ivnext)
ImageView-tvnext;
@BindView(R.id.ivback)
图像视图tvback;
语境;
问题、要求、行动;
私人int pos,大小;
私有字符串名称;
私人无障碍者;
List selectedanswer=new ArrayList();
私有整数timeclicked=0;
TextView txtTime;
私有SimpleDataFormat displayableTimeFormatter=新SimpleDataFormat(“HH:mm”,Locale.getDefault());
公共静态程序QuestionAnswerFragment newInstance(字符串名称、QuestionNaRequestions活动、int位置、int活动列表大小){
ProgramQuestionAnswerFragment f=新的ProgramQuestionAnswerFragment();
Bundle b=新Bundle();
b、 putSerializable(“活动”,new Gson().toJson(活动));
b、 putInt(“pos”,位置);
b、 putString(“name”,name);
b、 putInt(“大小”,活动列表大小);
f、 设置参数(b);
返回f;
}
@凌驾
公共空间(上下文_上下文){
super.onAttach(_上下文);
if(_活动的上下文实例){
上下文=_上下文;
}
}
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
Log.e(“创建”、“查看”);
视图=充气机。充气(R.layout.Program\u问卷调查组,容器,错误);
activities=new Gson().fromJson(getArguments().getString(“活动”),questionnaRequestions.class);
pos=getArguments().getInt(“pos”);
size=getArguments().getInt(“size”);
name=getArguments().getString(“name”);
unbinder=ButterKnife.bind(这个,视图);
mainparentviewgroup.setTag(0);
返回视图;
}
@凌驾
已创建公用void onview(@NonNull视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
if(活动!=null){
if(activities.getQuestionTypeId()==(单个答案问题类型ID)){
CreateFreeTextQuestionResponse(活动);
}
}
}
私有void createFreeTextQuestionAnswer(问题请求活动){
LayoutFlater vi=(LayoutFlater)getActivity().getSystemService(getActivity().LAYOUT\u充气机\u服务);
视图项视图=vi.充气(R.layout.programme\u question\u free\u text\u布局,mainparentviewgroup,false);
TextView txtTitle=itemView.findViewById(R.id.tvtitle);
TextView txtBody=itemView.findviewbyd(R.id.tvbody);
txtTitle.setText(名称);
setText(activities.getQuestion());
mainparentviewgroup.addView(itemView);
}
R.layout.Program\u调查问卷\u组
version=“1.0”encoding=“utf-8”>
节目(问题)(自由)(文字)(版面)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:id="@+id/linear"
android:padding="10dp">
<TextView
android:id="@+id/tvtitle"
style="@style/smallBoldText"
android:text="my leep "
android:textSize="15sp" />
<TextView
android:id="@+id/tvbody"
style="@style/smallText"
android:layout_marginTop="10dp"
android:layout_gravity="left"
android:gravity="left"
android:text="my leep " />
<EditText
android:id="@+id/etfreeanswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:hint="Type here..."
android:gravity="top"
android:background="@drawable/edittext_greysolid_border"
android:minHeight="108dp" />
</LinearLayout>
version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@color/text"
card_view:cardCornerRadius="6dp">
<!--YOUR CONTENT-->
<RelativeLayout
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/viewgroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
<RelativeLayout
android:id="@+id/relnex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/viewgroup"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/white"
android:gravity="bottom"
android:paddingTop="14dp">
<TextView
android:id="@+id/textCurrentQuestionnumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:textColor="@color/lightGreyText"
android:textSize="18sp" />
<!--<TextView-->
<!--android:id="@+id/tvnext"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_alignParentRight="true"-->
<!--android:layout_marginTop="5dp"-->
<!--android:layout_marginRight="22dp"-->
<!--android:drawableRight="@drawable/right_arrow"-->
<!--android:drawableTint="@color/black"-->
<!--android:drawablePadding="2dp"-->
<!--android:fontFamily="sans-serif"-->
<!--android:letterSpacing="0.0"-->
<!--android:text="NEXT"-->
<!--android:textColor="#3a98e4"-->
<!--android:textSize="13sp"-->
<!--android:textStyle="bold"-->
<!--android:visibility="gone" />-->
</RelativeLayout>
<ImageView
android:id="@+id/ivnext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="15dp"
android:src="@drawable/right_arrow"
android:tint="@color/black"
android:visibility="gone" />
<ImageView
android:id="@+id/ivback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:padding="15dp"
android:src="@drawable/left_arrow"
android:tint="@color/black"
android:visibility="gone" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:id="@+id/linear"
android:padding="10dp">
<TextView
android:id="@+id/tvtitle"
style="@style/smallBoldText"
android:text="my leep "
android:textSize="15sp" />
<TextView
android:id="@+id/tvbody"
style="@style/smallText"
android:layout_marginTop="10dp"
android:layout_gravity="left"
android:gravity="left"
android:text="my leep " />
<EditText
android:id="@+id/etfreeanswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:hint="Type here..."
android:gravity="top"
android:background="@drawable/edittext_greysolid_border"
android:minHeight="108dp" />
</LinearLayout>