【发布时间】:2016-04-20 12:53:08
【问题描述】:
当我试图将视图寻呼机放在对话框中时,它会给出 IllegalArgumentException 之类的异常。
这是我发现的异常:
04-20 17:54:20.579 21212-21212/com.example.user.sampleproject
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.user.sampleproject, PID: 21212
java.lang.IllegalArgumentException: No view found for id 0x7f0c009e
(com.example.user.sampleproject:id/pager) for fragment
PagerFragments{747684c #0 id=0x7f0c009e android:switcher:2131493022:1}
at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1059)
下面是我在 DialogWithPager 实现 AppCompatActivity 时使用的代码。
package com.example.user.sampleproject.activity;
import android.app.Dialog;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.example.user.sampleproject.R;
import com.example.user.sampleproject.fragments.PagerFragments;
import java.util.ArrayList;
public class DialogWithPager extends AppCompatActivity {
Context context;
ArrayList<String> tittles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tittles = new ArrayList<>();
tittles.add("sai");
tittles.add("rama");
tittles.add("usha");
tittles.add("venkataramana");
context = DialogWithPager.this;
LinearLayout linearLayout = new LinearLayout(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
linearLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.white));
linearLayout.setLayoutParams(params);
linearLayout.setGravity(Gravity.CENTER);
Button button = new Button(context);
button.setText("click");
button.setTextColor(ContextCompat.getColor(context, R.color.background));
button.setBackgroundColor(ContextCompat.getColor(context, R.color.green));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showdialog();
}
});
linearLayout.addView(button);
setContentView(linearLayout);
}
private void showdialog() {
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog_viewpager);
ViewPager pager = (ViewPager) dialog.findViewById(R.id.pager);
dialog.show();
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return new PagerFragments("hi");
}
@Override
public int getCount() {
return tittles.size();
}
});
}
}
package com.example.user.sampleproject.fragments;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.user.sampleproject.R;
import java.util.ArrayList;
import java.util.Arrays;
/**
* A simple {@link Fragment} subclass.
*/
@SuppressLint("ValidFragment")
public class PagerFragments extends Fragment {
@SuppressLint("ValidFragment")
public PagerFragments(String mealPlansDomain) {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View mealplansView = inflater.inflate(R.layout.activity_alligned_text_view, null);
return mealplansView;
}
}
【问题讨论】:
-
尝试使用 getChildFragmentManager 而不是 getSupportFragmentManager
-
库中没有这个方法..".你能给出超级类的详细信息吗?"
-
当然,...抱歉,它只是处理片段。请提供您的 PagerFragments 类的 sn-p 吗?
-
它已经在代码中了...如果您向下滚动,您可以找到它...
-
有可能是它无法处理这块:View mealplansView = inflater.inflate(R.layout.activity_alliged_text_view, null); 尝试将其更改为: 查看mealplansView = inflater.inflate(R.layout.activity_alligned_text_view, container, false);
标签: android android-fragments android-studio android-viewpager