Не отображается средее арифметическое

171
19 октября 2018, 16:40

В общем, нужно выводить среднее арифметическое в activity 3

    public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
String[] countries = {"Urugay", "Paraguay", "Jamaica", "Peru", "Mexico"};
int[] population = {6770000, 2300000, 500000, 6310000, 7000000};
Button btnSubmit;
int sum;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Map<String, Integer> countryData = new HashMap<>(countries.length);
    for (int i = 0; i < countries.length; i++) {
        countryData.put(countries[i], population[i]);
        }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        countryData.forEach((key, value) -> System.out.println(key + " -> " + value));
    }
    ListView countriesList = (ListView) findViewById(R.id.countriesList);
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
            android.R.layout.simple_list_item_multiple_choice, countries);
            countriesList.setAdapter(adapter);
    sum = 0;
    for (int i = 0; i < population.length; i++)
    {
        sum += population[i];
    }
    btnSubmit = findViewById(R.id.btnSubmit);
    btnSubmit.setOnClickListener(this);
}
@Override
public void onClick(View view) {
    Intent intent = new Intent(this, Main3Activity.class);
    intent.putExtra("average", sum);
    startActivity(intent);
}
}

Код из activity 3

public class Main3Activity extends AppCompatActivity {
TextView tvView;
int sum;
int defaultValue = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);
    tvView = (TextView) findViewById(R.id.tvView);
    Intent mIntent = getIntent();
    int intValue = mIntent.getIntExtra("average", 0);
    tvView.setText("Average: " + sum);
}
}

При выборе пользователем разных позиций в activtiy 3 отображается не среднее арифметическое этих позиций, а число 0. Обьясние, что не так ?

Answer 1

Вы получили значение из интента в переменную intValue - её и выводите в TextView:

  int intValue = mIntent.getIntExtra("average", 0);
  tvView.setText("Average: " + intValue);

или получайте значение в sum:

  sum = mIntent.getIntExtra("average", 0);
  tvView.setText("Average: " + sum);
READ ALSO
JpaRepository выборка

JpaRepository выборка

Три взаимосвязанные сущности: города (City), улицы (Street), жители (People)

168
Конкретное разрешение для media

Конкретное разрешение для media

Как в правиле @media указывать конкретное разрешение,а не только ширину окна? Хочу адаптировать для отдельных девайсов,но не могу понять как

157
Адаптивные ряды и строки в CSS

Адаптивные ряды и строки в CSS

На большом экране у меня должно 6 элеметов в ряд, а на мобильных экранах по одному элементу, но выводится по другомуКак мне исправить данный...

146