【问题标题】:Java intent send me blank pageJava 意图向我发送空白页
【发布时间】:2025-11-29 15:30:01
【问题描述】:

要为一家餐厅创建一个实习应用程序,我打算将其发送到命令页面。但是意图给我一个空白页。以下是代码的制作方式:

mButtonCommande.setOnClickListener(new View.OnClickListener() {
  

  @Override
    public void onClick(View view) {
        OpenCommandeActivity();

    }


    });

}
private void OpenCommandeActivity() {
    Intent connect = new Intent(MainActivity.this, CommandeActivity.class);
    startActivity(connect);
}

最初页面是黑色的,所以如果有人可以帮助我,请提前感谢您。

这是起始页的 XML:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"></LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal">

        />

            <TableLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:stretchColumns="*">

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </TableLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal">


            <Button
                android:id="@+id/buttonAccessCommande"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/commandAccessButton"
                app:backgroundTint="@color/orange"
                android:onClick="openCommandeActivity"
                tools:ignore="OnClick" />
        </LinearLayout>
    </LinearLayout>

这是第二页的 Java:

package com.example.tacoskingapp;

import java.util.ArrayList;

import android.content.Intent;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterViewAnimator;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;


public class CommandeActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
    private Button mButtonFinalCommande;
    private EditText mNomClient;
    private EditText mAdresseClient;
    private Spinner mListProduit;
    private ArrayList<String>ListProducts;// liste d'items ayant pour titre

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_commaande);
        mButtonFinalCommande=findViewById(R.id.button2);
       // mListProduit=findViewById(R.id.spinner_produit);
        ArrayAdapter<CharSequence>AdapterProduct = ArrayAdapter.createFromResource(this, R.array.product_array, android.R.layout.simple_spinner_item);
        AdapterProduct.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mListProduit.setAdapter(AdapterProduct);// je connect ici mon spinner et mon adapteur
        mListProduit.setOnItemSelectedListener(this);
        Intent connect = getIntent();
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
    String text = parent.getItemAtPosition(position).toString();
        Toast.makeText(parent.getContext(), text, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
}

【问题讨论】:

  • 这里没有足够的信息来帮助您。请查看this 并更新问题以获得足够的详细信息,以便其他人可以运行它并看到您描述的相同行为。
  • 好吧。这是从 XML 的角度来看的页面
  • 这仍然不是一个完整的示例 - 但问题可能在于您的 CommandeActivity 设置,而不是与意图有关。也许在活动顶部添加一个带有标题的TextView,这样你就知道你在正确的页面上,然后你可以研究如何显示一个列表。

标签: java android android-intent


【解决方案1】:

如果您只想在单击按钮上转到 Commande Activity,请使用此按钮。

mButtonCommande.setOnClickListener(new View.OnClickListener() {
  @Override
    public void onClick(View view) {
        OpenCommandeActivity();
    }
}

private void OpenCommandeActivity() {
    Intent connect = new Intent(MainActivity.this, CommandeActivity.class);
    startActivity(connect);
}

但是如果你想在去Commande Activity的途中添加另一个函数,请确保将函数的代码放在OpenCommandeActivity()之前,就像这个。

mButtonCommande.setOnClickListener(new View.OnClickListener() {
  @Override
    public void onClick(View view) {
        Toast.makeText(getApplicationContext(),"OK",Toast.LENGTH_SHORT).show();
        OpenCommandeActivity();
    }
}

private void OpenCommandeActivity() {
    Intent connect = new Intent(MainActivity.this, CommandeActivity.class);
    startActivity(connect);
}

并且不要忘记在 AndroidManifest.xml 中指定它,如下所示。

<activity
    android:name=".MainActivity"
    android:exported="true" />
<activity
    android:name=".CommandeActivity"
    android:exported="true" />

【讨论】:

  • 现在我的应用程序崩溃了
  • 如果您不提供完整的代码,将很难获得帮助。如果不能分享,建议查看Logcat中的错误码。
  • 为 CommandeActivity 提供布局。
  • 谢谢我很快就喜欢上了它。对不起,我的英语不太好,我不是母语人士
【解决方案2】:

试试

setContentView(r.layout.activity_commande)

【讨论】:

    最近更新 更多