Окно двойной активности при использовании намерения для ачартенжинового графа - PullRequest
2 голосов
/ 03 января 2012

Среда разработки: Eclipse 3.7.0 Разработка: Android 3.2 приложение для Market Place Использование: aChartEngine 0.7.0

Я новичок в сцене разработки, но немного программировал на прошлых различных языках, я создал приложение ZopaStats (на Marketplace), но сейчас я пытаюсь преобразовать страницу статистики на основе текста в отображаться в виде гистограммы с использованием ахартенжина. Я могу получить график для отображения из действия с помощью другого действия, т. Е .:

Intent achartIntent = new TemperatureChart().execute(this);
startActivity(achartIntent);

, но это дает мне дополнительный экран активности, т.е.

Главный экран -> 1-е задание (просмотр исходной текстовой статистики) -> 2-е задание (график)

Поэтому, когда я возвращаюсь на экран графика, я получаю пустой 1-й экран активности. Я надеюсь, что здесь есть смысл. Поэтому я попытался запустить упражнение с главного экрана (то есть моего основного класса), например

.
final Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
  Intent achartIntent = new TemperatureChart().execute(this);
  startActivity(achartIntent);
  }
});

Но затмение дает мне следующую ошибку в коде:

Метод execute (Context) в типе TemperatureChart не применим для аргументов new (View.OnClickListener () {}}

Я пытался позволить Eclipse изменить метод, но тогда это вызывает другие проблемы, так что я думаю, что я действительно ищу (в обход), чтобы выяснить, в чем разница, когда я могу попытаться начать действие из другого класса Activity, а не запуск его из основного класса.

Я прошу прощения за неправильное использование терминов и т. Д., Как я говорю, я новичок. Я смотрю на это уже несколько дней, но документация Intent и Activity мне не очень помогает, поэтому мне просто нужно несколько указателей.

Спасибо

Ответы [ 3 ]

1 голос
/ 03 января 2012

Для полноты нового кода это: Нотабене Мой оригинальный класс называется ZopaStats.class

final Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
  Intent achartIntent = new MarketZopaGraph().execute(ZopaStats.this);
  startActivity(achartIntent);
  }
});

Это прекрасно работает, только одно окно активности, еще раз большое спасибо за быстрый ответ, в рекордно короткие сроки;)

1 голос
/ 03 января 2012

В вашем примере ссылка this, которую вы передаете execute(), является вашим анонимным внутренним подклассом OnClickListener.Это не объект контекста, на который жалуется Eclipse.

Скорее, вы хотите передать экземпляр действия.Предполагая, что фрагмент кода, который вы разместили, живет в классе с именем MyExampleActivity, вы можете использовать MyExampleActivity.this из внутреннего класса для доступа к экземпляру содержащего класса.Вы должны быть в состоянии передать это на TemperatureChart.execute()

Нет никакой разницы в запуске действия из основного действия или из любого другого действия.Вы просто создаете намерение и вызываете startActivity для него.

0 голосов
/ 05 сентября 2013

, когда мы используем achartengine для рисования графика, включает в себя его собственную деятельность ... i.e.org.achartengine.GraphicalActivity .. когда мы нажимаем назад, это показывает собственную активность, которая используется для отображения графика .. чтобы скрыть эти действия, вызов метода finish () для метода onPause ().

...