2016-06-23 12 views
-1

私のリサイクラビューの行をクリックして別のアクティビティを開始すると、次のようなメッセージが表示されます。例外が発生します。新しいアクティビティの開始時に例外が発生する

1:24:40.285 6380-6380/testing.theo.androidtestproject E/AndroidRuntime: FATAL EXCEPTION: main Process: testing.theo.androidtestproject, PID: 6380 
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference at android.content.ComponentName.<init>(ComponentName.java:77) 
at android.content.Intent.<init>(Intent.java:4358) 
atesting.theo.androidtestproject.adapter.MySQLAdapter$1.onClick(MySQLAdapter.java:77) 

私は私のアダプタ内の新しいアクティビティを起動する意図を初期化します。

私のアクティビティ内でアダプタを初期化します。

public class NoInternetActivity extends AppCompatActivity { 
RecyclerView myList; 
LinearLayoutManager layout; 
MySQLAdapter myAdapter; 
Activity a; 
DatabaseHandler dba = new DatabaseHandler(NoInternetActivity.this); 
private ArrayList<SQLiteModel> myarr = new ArrayList<>(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_no_internet); 
    myList = (RecyclerView) findViewById(R.id.recycler_view); 
    layout = new LinearLayoutManager(this); 
    myList.setLayoutManager(layout); 
    myAdapter = new MySQLAdapter(a,myarr); 
    myList.setAdapter(myAdapter); 

    fetchDataFromDB(); 
} 

public void fetchDataFromDB() { 

    dba = new DatabaseHandler(getApplicationContext()); 

    ArrayList<SQLiteModel> membersDB = dba.getMembersDetails(); 

    for(int i=0; i<membersDB.size();i++){ 
     int id = membersDB.get(i).getSqliteId(); 
     String fname = membersDB.get(i).getSqliteFirstName(); 
     String lname = membersDB.get(i).getSqliteSecondName(); 
     String role = membersDB.get(i).getSqliteRole(); 
     String image = membersDB.get(i).getSqliteImage(); 

     //String desc = moviesFromDB.get(i).getContent(); 
     SQLiteModel f = new SQLiteModel(); 
     f.setSqliteId(id); 
     f.setSqliteFirstName(fname); 
     f.setSqliteSecondName(lname); 
     f.setSqliteRole(role); 
     f.setSqliteImage(image); 
     myarr.add(f); 

    } 
    dba.close(); 
} 
} 

これに関するアイデアはありますか?私はSQLiteからすべてのデータを取得します。ありがとう、

Theo。

+1

アダプターに渡すコンテキストは何ですか?アダプタ初期化ステートメントを投稿できますか? – Raghavendra

+0

アダプタを初期化するコードを追加しました。 – Theo

+0

私はアクティビティと配列リストを渡します。 – Theo

答えて

1

変更は

myAdapter = new MySQLAdapter(a,myarr); 

myAdapter = new MySQLAdapter(this, myarr); 

と基本的には、アダプタに渡されたあなたの活動オブジェクトがnullです。

関連する問題