Не могу начать деятельность с класса - PullRequest
2 голосов
/ 27 сентября 2011

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

Также класс, который получает onItemClick, не является действием.Я опубликую код, чтобы попытаться визуализировать, что я имею в виду.

Это мой метод onClick в классе, который хочет начать действие.

public void onClick(View v) {
        if (v.equals(this)) {
            notifyObservers(this.getId());
        } else if(v.equals(editButton) || v.equals(deleteButton)) {
            This is where I want to start the activity to show my ListView...
        }

}

Это мой класс, который расширяеткласс ListView.

public class ProfileSettings extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String[] mainSettings = getResources().getStringArray(R.array.mainSettings);

        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mainSettings));

        ListView lv = getListView();
        lv.setTextFilterEnabled(true);

        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // Do something
            }
        });
    }
}

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 27 сентября 2011

Я думаю, что это может помочь вам:

"Передайте контекст действия через конструктор вашему классу или создайте статический контекст в вашей активности. С помощью контекста вы можете начинать действия так же, как и в классе занятий. "

    class First extends Activity {
    ...
    Second test = new Second(this);
    test.start();
    ...
}

class Second {
    private Context mContext;
    ...
    public Second(Context c) { this.mContext = c; }
    ...
    public start() { mContext.startActivity(...); }
}

для более подробной проверки

http://www.anddev.org/view-layout-resource-problems-f27/starting-an-activity-from-a-non-activity-class-t14483.html

1 голос
/ 27 сентября 2011

Попробуйте это в своем клике

Intent i = new Intent(this, ProfileSettings.class);
startActivity(i);

РЕДАКТИРОВАТЬ:

Также не забудьте добавить действие в манифест.

...