开发者

Can't start activity from class

开发者 https://www.devze.com 2023-04-08 12:48 出处:网络
I am trying to start an activity from a normal class and I can\'t figure out how it is done, if it can be done. On an itemClick I want to start an activity that extends the ListView class to show a li

I am trying to start an activity from a normal class and I can't figure out how it is done, if it can be done. On an itemClick I want to start an activity that extends the ListView class to show a list of options.

Also the class that receives the onItemClick is not an activity. I will post the code to try to visualize what i mean.

This is my onClick method in the class that wants to start a an activity.

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...
        }

}

This is my class that extends the ListView class.

public class ProfileSettings extends ListActi开发者_JAVA百科vity {
    @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
            }
        });
    }
}

Thanks in advance!


I think this may help you:

"Pass the context of the activity via constructor to your class or make a static context in your activity. With the context you can start activities like you would start them within the activity class."

    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(...); }
}

for more detail check

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


Try this in your onClick

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

EDIT:

Also dont forget to add the activity to your manifest.

0

精彩评论

暂无评论...
验证码 换一张
取 消