2017-08-13 3 views
0

私はリストデータを持っていますが、アイテムの1つをクリックすると詳細が表示されますが、詳細アクティビティにデータを渡す方法はわかりません。詳細データを取得するにはアンドロイドスタジオ

だから、どうすればいいですか?私はスタックオーバーフローで利用可能な答えの多くの方法を試してみましたが、それらのすべてが動作していない、または私の問題に関連していません。

だから、親切にこれを行うのに役立ちます。ここ I want pass data to Detail Voucher activity

私のアダプタスクリプト:

public class VoucherAdapter extends ArrayAdapter<Voucher> { 
    List<Voucher> mVoucherList; 
    LayoutInflater vi; 
    int Resource; 
    VoucherAdapter.ViewHolder holder; 
    private Context context; 


public VoucherAdapter(Context context, int resource, List<Voucher> objects) { 
    super(context, resource, objects); 
    vi = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    Resource = resource; 
    mVoucherList = objects; 
    this.context = context; 
} 


@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // convert view = design 
    View v = convertView; 
    if (v == null) { 
     holder = new VoucherAdapter.ViewHolder(); 
     v = vi.inflate(R.layout.list_voucher, parent, false); 
     holder.kode = (TextView) v.findViewById(R.id.txtkode); 
     holder.status = (TextView) v.findViewById(R.id.txt_stat); 
     holder.expiredDate = (TextView) v.findViewById(R.id.txt_tgl_exp); 
     holder.list = (RelativeLayout) v.findViewById(R.id.itemListVoucher); 
     v.setTag(holder); 
    } else { 
     holder = (VoucherAdapter.ViewHolder) v.getTag(); 
    } 
    holder.kode.setText(mVoucherList.get(position).getSerialNumber()); 
    holder.status.setText(mVoucherList.get(position).getStatus()); 
    DateFormat df = new SimpleDateFormat("MMM dd yyyy HH:mma"); 
    String reportDate = df.format(mVoucherList.get(position).getExpiryDate()); 
    holder.expiredDate.setText(reportDate); 
      holder.list.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Intent detailIntent = new Intent(getContext(), VoucherDetailAktif.class); 
        context.startActivity(detailIntent); 
        //how to pass the data to detail activity? 
       } 
      }); 

    return v; 

} 

static class ViewHolder { 

    public TextView kode; 
    public TextView expiredDate; 
    public TextView status; 
    public RelativeLayout list; 
} 
} 

がParcelableとしてあなたのクラスを実装し、このように送信しない場合は、カスタムモデルがParcelableを実装して確認してくださいあなたの

+0

タイポ、フォーマットと詳細 – user7294900

答えて

0

ありがとう、

Intent detailIntent = new Intent(getContext(), VoucherDetailAktif.class); 
Voucher vouceher = mVoucherList.get(position); 
detailIntent.putExtra("voucher", vouceher) 
context.startActivity(detailIntent); 

VoucherDetailAktif.javaのアクティビティでは、このようなVoucherオブジェクトを取得できます。

Voucher vouceher = getIntent().getParcelableExtra("voucher"); 

カスタムクラスがSerializableを実装している場合、あなたは上記と同じで行うことができ、データを送信していますが、このように行うことができますVoucherDetailAktif.javaクラス内のデータを取得するための 、

Voucher vouceherValue = (Voucher) getIntent().getSerializableExtra("voucher"); 

注:

getViewのpositionパラメータにfinalを追加して、 onClickListener内でアクセスします。

public View getView(final int position, View convertView, ViewGroup parent) 
関連する問題