首页 > 解决方案 > 循环后没有得到任何结果,几乎完成

问题描述

所以,我一直在尝试开发一个应用程序,您可以在其中自己订购三明治。到目前为止,我已经使用列表视图管理了所有内容,您可以订购什么类型的三明治等。

然后我进入下一个活动,该活动应该显示用户选择的三明治,但不幸的是没有弹出任何内容。

如果您有第二个活动的替代代码,我会为它打开。

Code1 = 您在哪里订购什么三明治:

package com.example.boo.cafestudent;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class Order extends AppCompatActivity{




  ArrayList<String> klickademackor = new ArrayList<String>();
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.orderactivity);

    String[] mackor ={"Ostsmörgås","Skinksmörgås","Ost och Skinksmörgås", "Salamismörgås","Räksmörgås",
"Rensmörgås", "Älgsmörgås", "Köttbullesmörgås"};



ListAdapter johansadapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, mackor);

    //hämtar ListView
 ListView mackorListView = (ListView) findViewById(R.id.ListViewMackor);

//Hämtar data från array stringen

   // final String[] array_mackor =    getResources().getStringArray(R.array.arraymackor);

    //skapandet av en array adapter

    //Själva adaptern till ListView
    mackorListView.setAdapter(johansadapter);


    //kopplar onClicklistener till Listvie
    mackorListView.setOnItemClickListener(
            new AdapterView.OnItemClickListener(){
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id){
                    String mackor = String.valueOf(parent.getItemAtPosition(position));
                    Toast.makeText(Order.this, mackor + " har lagts till", Toast.LENGTH_LONG).show();
                    klickademackor.add(mackor);
                }
            });

};



public void onClick (View View){
    Intent i = new Intent (Order. this, Confirmation.class);


    startActivity(i);
}}

Code2 = 假定使用 ID 为 textview2 的 textview 显示结果。

package com.example.boo.cafestudent;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class Confirmation extends AppCompatActivity {

ArrayList<String> klickademackor = new ArrayList<String>();

private TextView textviewMackor;


@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.confirmationactivity);

    textviewMackor = (TextView) findViewById(R.id.textView2);

    for (String index : klickademackor) {
        textviewMackor.append(index + "\n");
    }

}

public void confirmation (View view){
    Toast.makeText(this,"Din beställning är bekräftad",    Toast.LENGTH_SHORT).show();
}


}

标签: javaandroidandroid-studio

解决方案


在代码 1 中,您创建了一个数组列表,如下所示:

ArrayList<String> klickademackor = new ArrayList<String>();

并且您已在 setOnItemClickListener 方法中将选择的项目添加到此 ArrayList 中。现在,如果您想在另一个活动中获取此数组列表,那么您需要将此 ArrayList 连同此处的意图一起传递:

public void onClick (View View){
Intent i = new Intent (Order. this, Confirmation.class);
i.putStringArrayListExtra("myArrayList",klickademackor);

startActivity(i);
}}

这将传递您的 ArrayList 以及 Intent 对象 i ,您可以使用以下方法从另一个活动中接收该对象:

ArrayList arrayList<Integer> = getIntent().getStringArrayListExtra("myArrayList");

因此,在第二个活动中编写此代码并使用此 ArrayList 在文本视图中显示。我希望这有帮助。


推荐阅读