2011-09-27 110 views
1

我想从一个普通的类开始一个活动,我无法弄清楚它是如何完成的,如果可以的话。在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 
      } 
     }); 
    } 
} 

在此先感谢!

+0

如何调用startActivity http://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent ) –

回答

6

我认为这可以帮助你:

“通过构造函数传递活动的背景下,以你的类或使静态背景下您的活动 用上下文就可以开始活动,就像你内启动它们。活动课“。

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

+0

谢谢!这对我有效。 – plast

1

试试这个在您的onClick

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

编辑:

也不要忘记到活动添加到您的清单。

+1

并且不要忘记将新的活动添加到Android清单 –