【问题标题】:Android Studio: Set and Transfer choosen Spinner Value to next ActivityAndroid Studio:设置并将选择的微调器值传输到下一个活动
【发布时间】:2021-03-05 14:29:02
【问题描述】:

我正在编写一个小游戏应用程序,每个玩家都可以选择一个可绘制对象,然后将其设置为以下活动,即小游戏。

这是我目前的代码:

public class Nameeingabespieler2 extends AppCompatActivity {
    public static final String EXTRA_NAME1 = "com.example.die_trinkspielapp.EXTRA_NAME1";
    public static final String EXTRA_NAME2 = "com.example.die_trinkspielapp.EXTRA_NAME2";
    public static final String Dinonametest1 = "com.example.die_trinkspielapp.DinoSpieler1";
    private TextInputLayout namespieler1;
    private TextInputLayout namespieler2;
    private ArrayList<DinoWahl> mDinoWahl;
    private DinoAdapter mAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nameeingabespieler2);
        namespieler1 = findViewById(R.id.Spieler_1_input);
        namespieler2 = findViewById(R.id.Spieler_2_input);
        final TextView testtest = (TextView) findViewById(R.id.textView3);        

        initList();

        final Spinner dinospinner = findViewById(R.id.spinner);
        Spinner dinospinner2 = findViewById(R.id.spinner2);

        mAdapter = new DinoAdapter(this, mDinoWahl);
        dinospinner.setAdapter(mAdapter);
        dinospinner2.setAdapter(mAdapter);        


        dinospinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName + " ausgewählt", Toast.LENGTH_SHORT).show();        

            }              

            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
        dinospinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName2 = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName2 + " ausgewählt", Toast.LENGTH_SHORT).show();              

            }


            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }

    private void initList(){
        mDinoWahl = new ArrayList<>();
        mDinoWahl.add(new DinoWahl("Brutus",R.drawable.alkdino));
        mDinoWahl.add(new DinoWahl("Skitty",R.drawable.coolerdino));
        mDinoWahl.add(new DinoWahl("Pharmi",R.drawable.drogendino));
        mDinoWahl.add(new DinoWahl("Luise",R.drawable.frauendino));
        mDinoWahl.add(new DinoWahl("Rex",R.drawable.koenigsdino));
        mDinoWahl.add(new DinoWahl("Cookie",R.drawable.kochdino));
        mDinoWahl.add(new DinoWahl("Divi",R.drawable.magierdino));
        mDinoWahl.add(new DinoWahl("Fumu",R.drawable.shishadino));
        mDinoWahl.add(new DinoWahl("Dr. Saurum",R.drawable.streberdino));

            }

    private boolean wertspieler1() {
        String usernameInput = namespieler1.getEditText().getText().toString().trim();
        if (usernameInput.isEmpty()) {
            namespieler1.setError("Spieler bitte eintragen");
            return false;
        } else if (usernameInput.length() > 15) {
            namespieler1.setError("Name zu lang");
            return false;
        } else {
            namespieler1.setError(null);
            return true;
        }
    }

    private boolean wertspieler2() {
        String usernameInput = namespieler2.getEditText().getText().toString().trim();
        if (usernameInput.isEmpty()) {
            namespieler2.setError("Spieler bitte eintragen");
            return false;
        } else if (usernameInput.length() > 15) {
            namespieler2.setError("Name zu lang");
            return false;
        } else {
            namespieler2.setError(null);
            return true;
        }
    }
    public void starteaktivity(View view) {
        if (!wertspieler1() | !wertspieler2()) {
            return;
        }
        EditText editText1 = (EditText) findViewById(R.id.spieler1id);
        String name1 = editText1.getText().toString();
        EditText editText2 = (EditText) findViewById(R.id.Spieler2id);
        String name2 = editText2.getText().toString();


        if(name1.equals(name2)) {
            Toast.makeText(Nameeingabespieler2.this, "bitte unterschiedliche Namen eingeben",Toast.LENGTH_LONG).show();
        } else {

            Intent intent = new Intent(this, Trinkspiel2spieler.class);
            intent.putExtra(EXTRA_NAME1, name1);
            intent.putExtra(EXTRA_NAME2, name2);    

            startActivity(intent);
        }
    }

}

这是我到目前为止的代码,最相关的部分是这个。

initList();

        final Spinner dinospinner = findViewById(R.id.spinner);
        Spinner dinospinner2 = findViewById(R.id.spinner2);

        mAdapter = new DinoAdapter(this, mDinoWahl);
        dinospinner.setAdapter(mAdapter);
        dinospinner2.setAdapter(mAdapter);

        dinospinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName + " ausgewählt", Toast.LENGTH_SHORT).show();        

            }

       
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
        dinospinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName2 = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName2 + " ausgewählt", Toast.LENGTH_SHORT).show();

            }        

            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

我没有选择要传输的drawable,我真的需要你的帮助。

编辑 现在这是我更新的代码 我有不同的课程

  1. Nameeingabespieler2(我希望选择微调器类型并将其转移到 Trinkspiel2spieler.java 的类)
  2. Trinkspiel2spieler(这是 Value 应该去的类,并为 Nameeingabespieler2 中选择的每个玩家设置可绘制对象)
  3. DinoWahl(用于微调器)
  4. DinoAdapter(微调器的适配器)

我现在的问题是,即使我按您所说的键入(行:162)所有内容,我也不会转移价值。 如果我添加(第 26 和 27 行)这些 Spinner 声明,它们将不会被使用,如果我删除(第 41 和 42 行),则应用程序崩溃。 但是即使现在有了这个版本,下一个 Activity (Trinkspiel2spieler) 也不会打开。 我真的不知道现在该怎么办。 非常抱歉打扰您,但如果您能帮助我,我将非常感激。

public class Nameeingabespieler2 extends AppCompatActivity {
    public static final String EXTRA_NAME1 = "com.example.die_trinkspielapp.EXTRA_NAME1";
    public static final String EXTRA_NAME2 = "com.example.die_trinkspielapp.EXTRA_NAME2";
    public static final String EXTRA_DINO1 = "com.example.die_trinkspielapp.DinoSpieler1";
    public static final String Dinonametest2 = "com.example.die_trinkspielapp.DinoSpieler2";
    private TextInputLayout namespieler1;
    private TextInputLayout namespieler2;
    private Spinner dinospinner;
    private Spinner dinospinner2;
    private ArrayList<DinoWahl> mDinoWahl;
    private DinoAdapter mAdapter;




    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nameeingabespieler2);
        namespieler1 = findViewById(R.id.Spieler_1_input);
        namespieler2 = findViewById(R.id.Spieler_2_input);


        Spinner dinospinner = findViewById(R.id.spinner);
        Spinner dinospinner2 = findViewById(R.id.spinner2);



        initList();



        mAdapter = new DinoAdapter(this, mDinoWahl);
        dinospinner.setAdapter(mAdapter);
        dinospinner2.setAdapter(mAdapter);



        dinospinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {


            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {



                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName + " ausgewählt", Toast.LENGTH_SHORT).show();



            }



            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
        dinospinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                Context ctx = view.getContext();

                DinoWahl clickedItem = (DinoWahl) adapterView.getItemAtPosition(i);
                String DinoName2 = clickedItem.getmDinoName();
                Toast.makeText(Nameeingabespieler2.this,DinoName2 + " ausgewählt", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent();
                intent.setClass(ctx, Constants.class);
                intent.putExtra(Dinonametest2, DinoName2);




            }


            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }

    private void initList(){
        mDinoWahl = new ArrayList<>();
        mDinoWahl.add(new DinoWahl("Brutus",R.drawable.alkdino));
        mDinoWahl.add(new DinoWahl("Skitty",R.drawable.coolerdino));
        mDinoWahl.add(new DinoWahl("Pharmi",R.drawable.drogendino));
        mDinoWahl.add(new DinoWahl("Luise",R.drawable.frauendino));
        mDinoWahl.add(new DinoWahl("Rex",R.drawable.koenigsdino));
        mDinoWahl.add(new DinoWahl("Cookie",R.drawable.kochdino));
        mDinoWahl.add(new DinoWahl("Divi",R.drawable.magierdino));
        mDinoWahl.add(new DinoWahl("Fumu",R.drawable.shishadino));
        mDinoWahl.add(new DinoWahl("Dr. Saurum",R.drawable.streberdino));


    }

    private boolean wertspieler1() {
        String usernameInput = namespieler1.getEditText().getText().toString().trim();
        if (usernameInput.isEmpty()) {
            namespieler1.setError("Spieler bitte eintragen");
            return false;
        } else if (usernameInput.length() > 15) {
            namespieler1.setError("Name zu lang");
            return false;
        } else {
            namespieler1.setError(null);
            return true;
        }
    }

    private boolean wertspieler2() {
        String usernameInput = namespieler2.getEditText().getText().toString().trim();
        if (usernameInput.isEmpty()) {
            namespieler2.setError("Spieler bitte eintragen");
            return false;
        } else if (usernameInput.length() > 15) {
            namespieler2.setError("Name zu lang");
            return false;
        } else {
            namespieler2.setError(null);
            return true;
        }
    }
    public void starteaktivity(View view) {
        if (!wertspieler1() | !wertspieler2()) {
            return;
        }
        EditText editText1 = (EditText) findViewById(R.id.spieler1id);
        String name1 = editText1.getText().toString();
        EditText editText2 = (EditText) findViewById(R.id.Spieler2id);
        String name2 = editText2.getText().toString();


        if(name1.equals(name2)) {
            Toast.makeText(Nameeingabespieler2.this, "bitte unterschiedliche Namen eingeben",Toast.LENGTH_LONG).show();
        }
        else{

            Intent intent = new Intent(this, Trinkspiel2spieler.class);
            intent.putExtra(EXTRA_NAME1, name1);
            intent.putExtra(EXTRA_NAME2, name2);
            intent.putExtra(EXTRA_DINO1, ((DinoWahl) dinospinner.getSelectedItem()).getmDinoName());





            startActivity(intent);
        }
    }


}

Trinkspiel2spieler(尚未完成)

public class Trinkspiel2spieler extends AppCompatActivity {


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

    Button testnamentest = (Button) findViewById(R.id.namenbuttonid);

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

}

public void startetest() {

    //namen einlesen
    Intent intent = getIntent();
    String nametextstring1 = intent.getStringExtra(Constants.EXTRA_NAME1);
    String nametextstring2 = intent.getStringExtra(Constants.EXTRA_NAME2);
    String Dino_uerbertragung1 = intent.getStringExtra(Constants.Dinonametest1);
    String Dino_uerbertragung2 = intent.getStringExtra(Constants.Dinonametest2);


    String Namen[] = {nametextstring1,nametextstring2};

    //TextViews deklarieren
    TextView Textview1 = (TextView) findViewById(R.id.nameanzeige1);
    TextView Textview2 = (TextView) findViewById(R.id.nameanzeige2);
    ImageView Dinoimage = (ImageView) findViewById(R.id.imageView2);
    //TextView Textview3 = (TextView) findViewById(R.id.nameanzeige3);

    Random random = new Random();
    int num = random.nextInt(Namen.length);
    Textview1.setText(Namen[num]);

    if (Namen[num] == nametextstring1){
        if (Dino_uerbertragung1 == "Cookie")
        Dinoimage.setImageResource(R.drawable.kochdino);
    }
    else {
        Dinoimage.setImageResource(R.drawable.coolerdinomrk2klein);
    }



    Resources resources = getResources();
    String[] Trinkspielfragen = resources.getStringArray(R.array.Trinkspiel);

    Random random1 = new Random();
    int num2 = random1.nextInt(Trinkspielfragen.length);
    Textview2.setText(Trinkspielfragen[num2]);
    

}

}

迪诺瓦尔

public class DinoWahl {
private String mDinoName;
private int mDinoWahl;

public DinoWahl(String Dinoname,int dinoBild) {
    mDinoName = Dinoname;
    mDinoWahl = dinoBild;
}

public String getmDinoName() {
    return mDinoName;

}

public int getDinoWahl(){
    return mDinoWahl;
}

}

恐龙适配器

public class DinoAdapter extends ArrayAdapter <DinoWahl>{

public DinoAdapter(Context context, ArrayList<DinoWahl> DinoListe) {
    super(context, 0, DinoListe);

}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    return initView(position, convertView, parent);
}

@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    return initView(position, convertView, parent);
}

private View initView(int position, View convertView, ViewGroup parent) {
    if(convertView == null){
        convertView = LayoutInflater.from(getContext()).inflate(
                R.layout.dino_spinner, parent, false
        );
    }

    ImageView imageViewDino = convertView.findViewById(R.id.alkoholdino);
    TextView textViewName = convertView.findViewById(R.id.Dinoname);

    DinoWahl curentItem = getItem(position);

    if (curentItem != null) {
        imageViewDino.setImageResource(curentItem.getDinoWahl());
        textViewName.setText(curentItem.getmDinoName());
    }

    return convertView;
}

}

常量

package com.example.die_trinkspielapp;

公共类常量{ 公共静态最终字符串EXTRA_NAME1 =“com.example.die_trinkspielapp.EXTRA_NAME1”; 公共静态最终字符串EXTRA_NAME2 =“com.example.die_trinkspielapp.EXTRA_NAME2”; 公共静态最终字符串EXTRA_NAME3 =“com.example.die_trinkspielapp.EXTRA_NAME3”; 公共静态最终字符串EXTRA_NAME4 =“com.example.die_trinkspielapp.EXTRA_NAME4”; 公共静态最终字符串EXTRA_NAME5 =“com.example.die_trinkspielapp.EXTRA_NAME5”; 公共静态最终字符串EXTRA_NAME6 =“com.example.die_trinkspielapp.EXTRA_NAME6”; 公共静态最终字符串EXTRA_NAME7 =“com.example.die_trinkspielapp.EXTRA_NAME7”; 公共静态最终字符串EXTRA_NAME8 =“com.example.die_trinkspielapp.EXTRA_NAME8”; public static final String EXTRA_NAME9 = "com.example.die_trinkspielapp.EXTRA_NAME9";

public static final String Dinonametest1 = "com.example.die_trinkspielapp.DinoSpieler1";
public static final String Dinonametest2 = "com.example.die_trinkspielapp.DinoSpieler2";
public static final String Dinonametest3 = "com.example.die_trinkspielapp.DinoSpieler3";
public static final String Dinonametest4 = "com.example.die_trinkspielapp.DinoSpieler4";
public static final String Dinonametest5 = "com.example.die_trinkspielapp.DinoSpieler5";
public static final String Dinonametest6 = "com.example.die_trinkspielapp.DinoSpieler6";
public static final String Dinonametest7 = "com.example.die_trinkspielapp.DinoSpieler7";
public static final String Dinonametest8 = "com.example.die_trinkspielapp.DinoSpieler8";
public static final String Dinonametest9 = "com.example.die_trinkspielapp.DinoSpieler9";

}

如果你能在这里帮助我,我会命名一个 Drawables(Dinos),如果你愿意,玩家可以在你之后选择

【问题讨论】:

    标签: android android-studio spinner android-spinner drawable


    【解决方案1】:

    在您的“starteaktivity”方法中,您已经有了答案,您只需将所选值通过 extra 传递给意图。

    编辑:更准确

    嗨@MarcStumpp

    我已经尝试过了,但值不会转到 startactivity。如果我在 Spinner 函数中将它设置为字符串值,它将无法识别。你知道我该如何解决这个问题吗?

    我认为在这种情况下您的代码不完整。

    1. 首先,您应该将微调器声明为 Activity 的属性变量
     public class Nameeingabespieler2 extends AppCompatActivity {
        private TextInputLayout namespieler1;
        private TextInputLayout namespieler2;
        private Spinner dinospinner;
        private Spinner dinospinner2;
        private ArrayList<DinoWahl> mDinoWahl;
        private DinoAdapter mAdapter;
        ...
    
    1. 然后在您的“starteaktivity”方法中,您可以获取微调器的值,以将其作为您的额外意图传递:
    
        if(name1.equals(name2)) {
                Toast.makeText(Nameeingabespieler2.this, "bitte unterschiedliche Namen eingeben",Toast.LENGTH_LONG).show();
            } else {
    
                Intent intent = new Intent(this, Trinkspiel2spieler.class);
                intent.putExtra(EXTRA_NAME1, name1);
                intent.putExtra(EXTRA_NAME2, name2);
                intent.putExtra(EXTRA_NAME3, ((DinoWahl) dinospinner.getSelectedItem()).getmDinoName());
                ...
        
                startActivity(intent);
            }
    
    1. 检索“Trinkspiel2spieler”活动中的值:
    public class Trinkspiel2spieler extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_trinkspiel2spieler);
    
            String firstSpinnerVal = getIntent().getStringExtra(Constants.EXTRA_NAME3);
            ...
    
    
        }
    }
    

    建议

    我建议你为你的额外创建一个常量类,例如:

    public class Constants {
        public static final String EXTRA_NAME1 = "com.example.die_trinkspielapp.EXTRA_NAME1";
        public static final String EXTRA_NAME2 = "com.example.die_trinkspielapp.EXTRA_NAME2";
        public static final String EXTRA_NAME3 = "com.example.die_trinkspielapp.EXTRA_NAME3";
        ...
        public static final String Dinonametest1 = "com.example.die_trinkspielapp.DinoSpieler1";
    }
    

    因此,您可以像这样在您的活动中使用相同的额外密钥并降低拼写错误的风险。

    【讨论】:

    • 正如 Lu No 所说,您可以使用 Intent.putExtra(key, value) 并将可绘制对象作为整数传递给“Trinkspiel2spieler”活动。
    • 我已经尝试过了,但值不会转到 startactivity。如果我在 Spinner 函数中将其设置为字符串值,它将无法识别。你知道我该如何解决这个问题吗?
    • 嗨@MarcStumpp,我检查了我的答案以更准确。希望对你有帮助。
    • 嗨@LuNo 首先我要非常感谢你所做的一切,我调整了我的代码。但我还有一个问题。为选择的微调器值设置的值被困在 onItemselected 函数中,我不知道如何将其从那里取出。我犯了一个愚蠢的小错误吗?
    • 嗨@MarcStumpp 你是说你的“DinoName”和“DinoName2”吗?如果您谈论这些变量,则有本地人,所以这很正常。也许我错过了您的问题中的某些内容,您能否发布代码更新并详细说明您尝试达到的新要求。据我所知,您最初的问题应该得到解决。
    【解决方案2】:

    我没有 SO 上的行号,最好是复制并粘贴您认为有问题的行。或者以截图为例。无论如何,我将代码复制到我的 IDE 中。

    关于编辑部分:

    我现在的问题是,即使我按照您所说的输入(行:162)所有内容,我也不会转移价值。如果我添加(第 26 和 27 行)这些 Spinner 声明,它们将不会被使用,如果我删除(第 41 和 42 行),则应用程序崩溃。

    正常的,看看android studio code inspector怎么说:

    1. 您不应该在此处保留静态键,因为它们现在已经在您的 Constant 类中了。如果您保留重复引用,则会增加出错的风险。
    2. 注意变量名的颜色,dinospinner 和dinospinner2 是灰色的,为什么? IDE 可以为您提供答案(仅超过其中一个): Android Studio 告诉你这个值永远不会被赋值!为了理解我们应该看看你提到的第 41 和 42 行: 在这里,您将微调器值分配给一个全新的变量,因为微调器位于行的开头。再次注意变量 dinospinner 和 dinospinner2 的颜色。白色表示当前函数是本地的(在本例中为 OnCreate)。因此,您将无法在 onCreate 之外调用它们。 我们可以在第 162 行看到 dinospinner 是紫色的: 它是紫色的,因为您引用了属性一,但它没有被分配,所以当代码将被执行时,它会因为 NullPointerException 而崩溃,因为它从未被分配。 要使其正常工作,您应该在第 41 和 42 行删除 Spinner

    但即使现在有了这个版本,下一个 Activity (Trinkspiel2spieler) 不会打开。我真的不知道现在该怎么办。我真的很抱歉 打扰你这么多,但如果可以的话,我真的很感激 帮帮我。

    在下一个活动中,我没有看到有关您的附加功能的更新。如果你想要你的第一个微调器值,如果我更新我的 anwser,你至少应该使用键“EXTRA_DINO1”来获取它:

            String firstSpinnerVal = getIntent().getStringExtra(Constants.EXTRA_DINO1);
    

    请注意,“EXTRA_DINO1”应该在常量中定义,而不是在您的活动中。

    在我这边,我能够毫无问题地启动下一个活动。你能更准确吗?真的发生了什么?没有?你有一些领先的日志吗?

    无论如何,我认为您的原始问题已得到解答。如果您需要更多帮助,我建议您将代码上传到存储库并与我分享。审查您的代码并提供帮助会更容易。

    由于您似乎是从android开始的,我建议您使用codelab来提高您的技能: https://developer.android.com/courses/fundamentals-training/toc-v2?authuser=1

    请看一下: https://www.tutorialspoint.com/what-is-a-variable-field-property-in-java

    【讨论】:

    • 您好,再次感谢您所做的一切,是的,您是对的。我是初学者,我已经为此买了一本书。使用我的应用程序,我现在遇到了这个问题。活动不会打开并显示错误代码原因:java.lang.NullPointerException:尝试在 com.example 的空对象引用上调用虚拟方法 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)'。 die_trinkspielapp.Nameeingabespieler2.onCreate(Nameeingabespieler2.java:47) 你知道这是为什么吗?
    • 您好,您是否关注我的线索?可能是因为您的微调器为空。但是如果我没有看到你所做的改变,我无法告诉你为什么。正如我在之前的回答中所说,在存储库中分享您的代码,以便我能够查看它。
    • 我只是在寻找一些解决方案,最终得到了它。现在一切正常。再次感谢您所做的一切。
    猜你喜欢
    • 2023-03-06
    • 2018-02-26
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2016-04-08
    相关资源
    最近更新 更多