Задать вопрос
@aam26071982

Как из ListFragment запустить Activity?

Из ListFragment нужно запустить ViewActivity, в строке
intent.setClass(ScreenOne.this, ViewActivity.class);

выдает ошибку
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ScreenOne extends ListFragment {

    String data[] = new String[] {
            .....
            .....
    };

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, data);
        setListAdapter(adapter);
    }

    public void onListItemClick (ListView l, View v, int pos, long id) {
        super.onListItemClick(l, v, pos, id); {
            String itemname = new Integer(pos).toString();
            Intent intent = new Intent();
            intent.setClass(ScreenOne.this, ViewActivity.class);
            Bundle b = new Bundle();
            b.putString("defStrID", itemname);
            intent.putExtras(b);
            startActivity(intent);
        }
    }
}
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Эмин К ответам на вопрос (3)
Ewintory
@Ewintory
Java / Android developer
Зачем создавать свой бандл, если можно работать через Intent напрямую?
Я бы из ScreenOne вызвал так:
Intent intent = new Intent(getActivity(), ViewActivity.class);
intent.putExtra(ViewActivity.EXTRA_ITEM_NAME, itemname);
startActivity(intent);

А в ViewActivity:
class ViewActivity {
   public static final String EXTRA_ITEM_NAME = "defStrID";
   ...
   onCreate(..){
      ...
      String itemname = getIntent.getStringExtra(EXTRA_ITEM_NAME);
      ...
   }
}
Ответ написан
Комментировать