我有一個靜態和內類內我的Activityclass
。我需要使用Intent(context,nameOfTheNewActivity.class)
來調用一個活動,因爲我嘗試在點擊RecyclerView.ViewHolder
中的某個項目時調用Intent
。我必須重寫onClick
才能使用getLayoutPosition()
(此getLayoutPosition()正常工作)點擊項目的位置。如何在內部靜態類中使用Intent啓動一個活動?
現在,當我嘗試使用意圖我有錯誤:
Non-static method cannot be referenced by a static context.
我讀到另一個鏈接來自像#1 this。我如何在靜態上下文和內部類的情況下調用Intent,即,如何獲取內部類中的上下文,以及如何解決**基本**錯誤,以便不調用非靜態從靜態類的類?
我嘗試以下之前在這裏問:
使用v.context從視圖的背景之下,我繼續與問題 - 現在依然調用從靜態上下文的非靜態方法。
刪除單詞靜態形式我的內部類,但並沒有解決和應用程序崩潰。
我的代碼:
public class ActivityOne extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener {
public static class MessageViewHolderOfFriend extends RecyclerView.ViewHolder { public MessageViewHolderOfFriend(View v) {
super(v);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
;
Intent intent = new Intent(v.getContext(),NewActivityToRun.class);
startActivity(intent);//Error in this Line//
}
});
}
}
檢查這個例子,它肯定會幫助https://github.com/shanwu/SimpleListView示例 – shanwu
將上下文傳遞給適配器。 1.你應該保持你的內部類是靜態的,這是防止內存泄漏的好方法。 – shanwu