2011-09-27 108 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清單 –