我的应用程序在创建一个relativelayout的按钮后崩溃

发布于 2025-02-11 06:05:52 字数 5004 浏览 1 评论 0原文

我想创建一个使用相对布局的ViewPager。

但是在此屏幕弹出之前,我有一个ConstraintLayout屏幕。

因此,我创建了一个按钮将我引导到该ViewPager,但是应用程序崩溃了,我不知道为什么...

Java:

public class TelaPrincipal extends AppCompatActivity {

private Button bt_to_treinos;
FirebaseFirestore db = FirebaseFirestore.getInstance();
String usuarioID;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tela_principal);

    getSupportActionBar().hide();
    IniciarComponentes();
    
    //THIS BUTTON OVER HERE  
    bt_to_treinos.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(TelaPrincipal.this,SlideAdapter.class);
           startActivity(intent);
       }
    });
  }
 }

我做了2个Relativelayouts:

<?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">

<ImageView
    android:id="@+id/slide_image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginLeft="100dp"
    android:layout_marginTop="80dp"
    android:src="@drawable/segunda" />

<TextView
    android:id="@+id/slide_heading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="350dp"
    android:layout_marginLeft="110dp"
    android:text="Segunda"
    android:textColor="@color/white"
    android:textSize="50sp"
    android:textStyle="bold"
    />

<TextView
    android:id="@+id/slide_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="500dp"
    android:text="@string/example"
    android:textColor="@color/white"
    android:textSize="15sp"
    android:textStyle="bold" />

第二个屏幕:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".treinos"
android:background="@drawable/background"
>

<androidx.viewpager.widget.ViewPager
    android:id="@+id/slideViewPager"
    android:layout_width="match_parent"
    android:layout_height="650dp" />

应该出现此屏幕,但崩溃了:

public class treinos extends AppCompatActivity {

private ViewPager mSlideViewPager;
private LinearLayout mDotLayout;

private TextView[] mDots;

private SlideAdapter sliderAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_treinos);
    getSupportActionBar().hide();

    mSlideViewPager = findViewById(R.id.slideViewPager);        

    sliderAdapter = new SlideAdapter(this);

    mSlideViewPager.setAdapter(sliderAdapter);
}}

SlidePager类其他Java代码:

public class SlideAdapter extends PagerAdapter {

Context context;
LayoutInflater layoutInflater;

public SlideAdapter(Context context){
    this.context = context;
}

//Arrays
public int [] slide_images = {
        R.drawable.segunda,
        R.drawable.terca,
        R.drawable.quarta,
        R.drawable.quinta,
        R.drawable.sexta,
        R.drawable.sabado,
        R.drawable.domingo
};

public String[] slide_headings = {
        "Segunda",
        "Terça",
        "Quarta",
        "Quinta",
        "Sexta",
        "Sábado",
        "Domingo"
};

public String[] slide_descs = {
        "Btest1",
        "test 2",
        "test 3",
        "test 4",
        "test 5",
        "test 6",
        "test 7 "
};


@Override
public int getCount() {
    return slide_headings.length;
}

@Override
public boolean isViewFromObject(View view, Object o) {
    return view == (RelativeLayout) o;
}

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
    layoutInflater = (LayoutInflater) 
    context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.slide_layout, container, false);

    ImageView slideImageView = (ImageView) view.findViewById(R.id.slide_image );
    TextView slideHeading = (TextView) view.findViewById(R.id.slide_heading );
    TextView slideDescription = (TextView) view.findViewById(R.id.slide_desc);

    slideImageView.setImageResource(slide_images[position]);
    slideHeading.setText(slide_headings[position]);
    slideDescription.setText(slide_descs[position]);

    container.addView(view);

    return view;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

    container.removeView((RelativeLayout) object);

}}

谢谢大家

I want to create a viewpager that uses relative layout.

but before that screen pops out, i have a constraintlayout screen.

So i create a button to direct me to that viewpager, but app crashes and i dont know why...

Java:

public class TelaPrincipal extends AppCompatActivity {

private Button bt_to_treinos;
FirebaseFirestore db = FirebaseFirestore.getInstance();
String usuarioID;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tela_principal);

    getSupportActionBar().hide();
    IniciarComponentes();
    
    //THIS BUTTON OVER HERE  
    bt_to_treinos.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(TelaPrincipal.this,SlideAdapter.class);
           startActivity(intent);
       }
    });
  }
 }

i did 2 RelativeLayouts:

<?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">

<ImageView
    android:id="@+id/slide_image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginLeft="100dp"
    android:layout_marginTop="80dp"
    android:src="@drawable/segunda" />

<TextView
    android:id="@+id/slide_heading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="350dp"
    android:layout_marginLeft="110dp"
    android:text="Segunda"
    android:textColor="@color/white"
    android:textSize="50sp"
    android:textStyle="bold"
    />

<TextView
    android:id="@+id/slide_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="500dp"
    android:text="@string/example"
    android:textColor="@color/white"
    android:textSize="15sp"
    android:textStyle="bold" />

Second one:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".treinos"
android:background="@drawable/background"
>

<androidx.viewpager.widget.ViewPager
    android:id="@+id/slideViewPager"
    android:layout_width="match_parent"
    android:layout_height="650dp" />

this screen should appear but crashes:

public class treinos extends AppCompatActivity {

private ViewPager mSlideViewPager;
private LinearLayout mDotLayout;

private TextView[] mDots;

private SlideAdapter sliderAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_treinos);
    getSupportActionBar().hide();

    mSlideViewPager = findViewById(R.id.slideViewPager);        

    sliderAdapter = new SlideAdapter(this);

    mSlideViewPager.setAdapter(sliderAdapter);
}}

Slidepager class other java code:

public class SlideAdapter extends PagerAdapter {

Context context;
LayoutInflater layoutInflater;

public SlideAdapter(Context context){
    this.context = context;
}

//Arrays
public int [] slide_images = {
        R.drawable.segunda,
        R.drawable.terca,
        R.drawable.quarta,
        R.drawable.quinta,
        R.drawable.sexta,
        R.drawable.sabado,
        R.drawable.domingo
};

public String[] slide_headings = {
        "Segunda",
        "Terça",
        "Quarta",
        "Quinta",
        "Sexta",
        "Sábado",
        "Domingo"
};

public String[] slide_descs = {
        "Btest1",
        "test 2",
        "test 3",
        "test 4",
        "test 5",
        "test 6",
        "test 7 "
};


@Override
public int getCount() {
    return slide_headings.length;
}

@Override
public boolean isViewFromObject(View view, Object o) {
    return view == (RelativeLayout) o;
}

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
    layoutInflater = (LayoutInflater) 
    context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.slide_layout, container, false);

    ImageView slideImageView = (ImageView) view.findViewById(R.id.slide_image );
    TextView slideHeading = (TextView) view.findViewById(R.id.slide_heading );
    TextView slideDescription = (TextView) view.findViewById(R.id.slide_desc);

    slideImageView.setImageResource(slide_images[position]);
    slideHeading.setText(slide_headings[position]);
    slideDescription.setText(slide_descs[position]);

    container.addView(view);

    return view;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

    container.removeView((RelativeLayout) object);

}}

Thankyou Everyone

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文