我正试图从一个正常的类开始一个活动,我不知道它是如何做到的,如果它可以做到。在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
}
});
}
}
提前感谢!
我想这可能对你有帮助:
"通过构造函数将活动的上下文传递给你的类,或者在你的活动中创建一个静态上下文。有了context,你可以像在activity类中那样启动activity。"
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在你的onClick
中试试这个Intent i = new Intent(this, ProfileSettings.class);
startActivity(i);
编辑:也不要忘记添加活动到您的清单