0

これについてのチュートリアルとケーススタディを数日間読みました。私のコードで実装する際に問題があります。詳細を表示SQLiteから他のRecyclerViewアクティビティへのデータアクティビティ

MainMuriddActivity to DetailsMuriddActivityのキーでデータベースからデータを取得できません。これは私のコードです。

MainMuriddActivity.java

​​

DetailsMuriddActivity.java

public class DetailsMuriddActivity extends AppCompatActivity { 

    DBHandler dbHandler; 
    private DetailAdapter adapter; 
    private Muridd muridd; 
    protected Cursor cursor; 
    TextView txt_resultnomor, txt_resultnama, txt_resulttempatlahir, txt_resulttanggallahir, txt_resultagama, 
      txt_resultjeniskelamin, txt_resultalamat, txt_resultnamaayah, txt_resulttlpayah, txt_resultkerjaayah, txt_resultnamaibu, 
      txt_resulttlpibu, txt_resultkerjaibu; 


    private List<Muridd> muriddList = new ArrayList<>(); 

    public Muridd getItem(int position) { 
     return muriddList.get(position); 
    } 

    @Override 
    public Intent getIntent() { 
     return super.getIntent(); 
    } 

    public Muridd getMuridd() { 
     return muridd; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.muridd_details); 
     //setContentView(R.layout.activity_details_muridd); 

     dbHandler = new DBHandler(this); 

     // 
     Intent i=getIntent(); 
     final String nomor=i.getExtras().getString("nomor"); 
     final String nama=i.getExtras().getString("nama"); 

     txt_resultnomor = (TextView) findViewById(R.id.txt_resultnomor); 
     txt_resultnama = (TextView) findViewById(R.id.txt_resultnama); 
     txt_resulttempatlahir = (TextView) findViewById(R.id.txt_resulttempatlahir); 
     txt_resulttanggallahir = (TextView) findViewById(R.id.txt_resulttanggallahir); 
     txt_resultagama = (TextView) findViewById(R.id.txt_resultagama); 
     txt_resultjeniskelamin = (TextView) findViewById(R.id.txt_resultjeniskelamin); 
     txt_resultalamat = (TextView) findViewById(R.id.txt_resultalamat); 
     txt_resultnamaayah = (TextView) findViewById(R.id.txt_resultnamaayah); 
     txt_resulttlpayah = (TextView) findViewById(R.id.txt_resulttlpayah); 
     txt_resultkerjaayah = (TextView) findViewById(R.id.txt_resultkerjaayah); 
     txt_resultnamaibu = (TextView) findViewById(R.id.txt_resultnamaibu); 
     txt_resulttlpibu = (TextView) findViewById(R.id.txt_resulttlpibu); 
     txt_resultkerjaibu = (TextView) findViewById(R.id.txt_resultkerjaibu); 

     // 
     txt_resultnomor.setText(nomor); 
     txt_resultnama.setText(nama); 

     SQLiteDatabase db = dbHandler.getReadableDatabase(); 
     cursor = db.rawQuery("SELECT * FROM table_muridd WHERE nama = '" + 
       txt_resultnama.getText()+"'",null); 

     cursor.moveToFirst(); 
     if (cursor.getCount()>0) 
     { 
      cursor.moveToPosition(0); 
      txt_resultnomor.setText(cursor.getString(0).toString()); 
      txt_resultnama.setText(cursor.getString(1).toString()); 
      txt_resulttempatlahir.setText(cursor.getString(2).toString()); 
      txt_resulttanggallahir.setText(cursor.getString(3).toString()); 
      txt_resultagama.setText(cursor.getString(4).toString()); 
      txt_resultjeniskelamin.setText(cursor.getString(5).toString()); 
      txt_resultalamat.setText(cursor.getString(6).toString()); 
      txt_resultnamaayah.setText(cursor.getString(7).toString()); 
      txt_resulttlpayah.setText(cursor.getString(8).toString()); 
      txt_resultkerjaayah.setText(cursor.getString(9).toString()); 
      txt_resultnamaibu.setText(cursor.getString(10).toString()); 
      txt_resulttlpibu.setText(cursor.getString(11).toString()); 
      txt_resultkerjaibu.setText(cursor.getString(12).toString()); 
     } 
    } 
} 

そしてここMuriddAdapter

public class MuriddAdapter extends RecyclerView.Adapter<MuriddAdapter.MuriddViewHolder> { 

    private List<Muridd> muriddList = new ArrayList<>(); 

    public MuriddAdapter(List<Muridd> muriddList) { 
     this.muriddList = muriddList; 
    } 

    @Override 
    public MuriddAdapter.MuriddViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_muridd, parent, false); 
     MuriddViewHolder muriddViewHolder = new MuriddViewHolder(view); 
     return muriddViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(MuriddAdapter.MuriddViewHolder holder, int position) { 
     holder.txt_resultnomor.setText(muriddList.get(position).getNomor()); 
     holder.txt_resultnama.setText(muriddList.get(position).getNama()); 
     holder.txt_resulttempatlahir.setText(muriddList.get(position).getTempat_lahir()); 

} 

    @Override 
    public int getItemCount() { 
     return muriddList.size(); 
    } 

    public static class MuriddViewHolder extends RecyclerView.ViewHolder { 

     TextView txt_resultnomor; 
     TextView txt_resultnama; 
     TextView txt_resulttempatlahir; 


     public MuriddViewHolder(View itemView) { 
      super(itemView); 

      txt_resultnomor = (TextView) itemView.findViewById(R.id.txt_resultnomor); 
      txt_resultnama = (TextView) itemView.findViewById(R.id.txt_resultnama); 
      txt_resulttempatlahir = (TextView) itemView.findViewById(R.id.txt_resulttempatlahir); 
       } 
    } 

    @Override 
    public void onAttachedToRecyclerView(RecyclerView recyclerView) { 
     super.onAttachedToRecyclerView(recyclerView); 
    } 
} 

DetailsMuriddAdapterも作成します。そして、どの部分を改善すべきですか?

答えて

0

あなたはこの

String getNama = muriddList.get(position).getNama(); 
i.putExtra("nama", getNama); 

この

String getNama = null; 
i.putExtra("nama", getNama); 
muriddList.get(position).getNama(); 

を置き換える必要がありますようにまた、あなたが "nomor" キーで意図に値を設定していないので、nomornullになりますようですあなたの場合:

final String nomor=i.getExtras().getString("nomor"); 
+0

kyouu、今のデータ表示することができます。しかし、なぜ彼らは正しい場所にいませんか?私が言ったように、bcozが "nomor"キーで意図した価値を設定しないのかどうか。ああそれをもっと説明する気にしてください、pls?そして、それは私のDetailsMuriddAdapterが必要でないことを意味しますか? – savitrisavitri

+0

@savitrisavitriあなたは「正しい場所」をどういう意味ですか?そして、はい、あなたはDetailsMuriddActivity.javaのアダプターは必要ありません – UneXp

+0

aaa私はそれを得ました。 iiカーソルを削除すると、私はそれを望みます。それよりもmuccchhh @unexp:D – savitrisavitri

関連する問題