程序运行没有错误。但是当我尝试运行应用程序时,它显示不幸停止了。我的调试器无法正常工作。 代码如下。
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewPager
android:id="@+id/pager"
android:layout_width="match_parent" android:layout_height="match_parent">
</ViewPager>
</LinearLayout>
MainActivity.java
package com.example.pathak.swipe;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends FragmentActivity {
ViewPager viewPager=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager)findViewById(R.id.pager);
FragmentManager fragmentManager=getSupportFragmentManager();
viewPager.setAdapter(new MyAdapter(fragmentManager));
}
}
class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment=null;
if(i==0)
{
fragment=new FragmentA();
}
else if(i==1)
{
fragment=new FragmentB();
}
else if(i==2)
{
fragment=new FragmentC();
}
else if(i==3)
{
fragment=new FragmentD();
}
return fragment;
}
@Override
public int getCount() {
return 4;
}
}
fragment.xml之
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="#FFCC00"
android:layout_height="match_parent">
</LinearLayout>
FragmentA.java
package com.example.pathak.swipe;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by Pathak on 2/3/2016.
*/
public class FragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater layoutInflater,ViewGroup container,Bundle savedInstanceState)
{
return layoutInflater.inflate(R.layout.fragment_a,container,false);
}
}
同样创建了另外三个片段及其xmls。
答案 0 :(得分:0)
我刚刚复制了这个场景,以便更快地识别出错误,我注意到你的“activity_main”中你需要使用支持库中的ViewPager,所以改变你在xml中声明它的方式:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
发生这种情况的原因是,在您的MainActivity中,当您创建ViewPager时,您从支持库中选择了一个,您也可以看到导入也匹配。但是,您稍后将常规ViewPager从XML传递到您创建的那个并且它们不匹配。你正在使用v4 ....一个很好!
现在应用运行良好。您自己识别此问题的方法是在运行应用程序之后,在崩溃之后,您可以查看日志记录
Android监视器
你会看到十几条红线,如果你向上滚动到开头,你有时可以很容易地确定你的问题是什么。在这种情况下,我看到它正在膨胀ViewPager,然后我注意到你没有使用正确的ViewPager。祝你好运,如果你在YouTube或这里很难看,有关于ViewPager的信息,请仔细阅读。