ListView с динамическими намерениями, которые изменяют TextView и WebView при каждом вызове - PullRequest
0 голосов
/ 02 июля 2011

Активность, которая отправляет putExtra ()

@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
    super.onListItemClick(l, v, position, id);
    final Intent intent = new Intent();
    // Set up different intents based on the item clicked: 
    switch (position)
    {
        case ACTIVITY_0:
            intent.putExtra("Value1", "Display this text!");
            intent.setClass(this, com.a.someclass.class);
}
    startActivityForResult(intent, position);
}

Активность, получающая putExtra ()

@Override
protected void onCreate(Bundle bundle) {
    // TODO Auto-generated method stub
    super.onCreate(bundle);
    setContentView(R.layout.information);
    Bundle extras = getIntent().getExtras();
    if (extras == null) {
        return;
    }
    String value1 = extras.getString("Value1");

    if (value1 != null) {
        informationTitle = (TextView)findViewById(R.id.informationTitle);
        informationText = (WebView)findViewById(R.id.informationText);
        informationTitle.setText(value1);
    }

Исходное сообщение:

Я искал повсюду хороший урок по этому вопросу, я разместил свой код в Интернете, чтобы люди могли посмотреть на него, но не нашли нужную мне помощь.

Я новичок в этом, и то, что я в основном пытаюсь сделать, это просто иметь список элементов, которые все связаны с одним классом, который имеет динамический TextView, который будет использоваться для заголовка, и WebView для контента.И поэтому, в основном, когда по элементу щелкают по списку, он открывает новое действие / намерение, а также передает аргументы для соответствующего изменения TextView и WebView.

Я знаю, как открыть новое действие,создание нового класса для каждого элемента в списке, но я уверен, что есть более простой способ, где я могу повторно использовать один класс и просто продолжать изменять TextView и WebView.Причина, по которой я это говорю, заключается в том, что в моем списке 15 предметов, но это будет увеличиваться со временем, поэтому я не хочу создавать 50-60 различных классов, чтобы открывать каждый новый предмет.

Если кто-то может указать мнек правильному учебнику или дайте мне некоторое представление здесь, я действительно буду очень признателен!

Спасибо

Ответы [ 2 ]

1 голос
/ 02 июля 2011

Для этого вместо того, чтобы использовать Intent для каждого элемента списка, вы должны вызывать один и тот же Activity с тем же Intent, но передавать вместе с ним дополнительные данные.

Давайтескажем, например, что вы хотите передать другой String в зависимости от того, по какому элементу списка щелкнули.Вы хотели бы

myIntent.putExtra(String key, String value);
startActivity(myIntent);

Activity, который вы начинаете с этого Intent, затем сможет получить эти дополнения в своем onCreate() с помощью

Bundle extras = getIntent().getExtras();

и получить доступдополнительные данные, которые вы вводите в Intent, используя методы, обозначенные здесь .Таким образом, вы можете использовать один Activity для всех элементов списка, но Activity отображать различную информацию в зависимости от дополнительных значений.

0 голосов
/ 02 июля 2011

Я дам вам ссылку, где вы можете получить лучший учебник для этого ... http://www.vogella.de/articles/Android/article.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...