Squeak.ru - шаблоны программирования

Как использовать идентификатор пользователя из списка?

У меня есть проблема, связанная с ListView, в этом представлении списка каждая строка имеет собственный аукцион_id, я хочу использовать этот аукцион_ид, когда мы нажимаем на строку и используем аукцион_ид в другом действии в качестве ввода JSON, пожалуйста, помогите мне

вот мой код

private void getMyAuctionList(JSONObject response){
    //MyAuctionListBean listBean = new MyAuctionListBean();
    List<MyAuctionListBean> list = new ArrayList<MyAuctionListBean>();

    if(response != null){
        try {
            JSONArray jsonArray = response.getJSONArray("success");

            for (int i = 0 ; i < jsonArray.length(); i++){
                MyAuctionListBean listBean = new MyAuctionListBean();
                JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                listBean.setAuction_id(jsonObject1.getString("auction_id"));
                listBean.setEvent_name(jsonObject1.getString("event_name"));
                listBean.setContact_no(jsonObject1.getString("contact_no"));
                listBean.setAuction_date(jsonObject1.getString("auction_date"));
                listBean.setEnd_date(jsonObject1.getString("end_date"));
                listBean.setLocation(jsonObject1.getString("location"));
                listBean.setPeople_range(jsonObject1.getString("people_range"));
                listBean.setPrice_range(jsonObject1.getString("price_range"));
                listBean.setIs_active(jsonObject1.getString("is_active"));
                listBean.setTotal_bid_count(jsonObject1.getString("total_bid_count"));
                listBean.setTotal_quoted(jsonObject1.getString("total_quoted"));
                listBean.setTAproved(jsonObject1.getString("TAproved"));
                listBean.setAuction_description(jsonObject1.getString("auction_description"));
                list.add(listBean);

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    hAdapter = new MyAuctionHistoryAdapter(getActivity(),list);
    hRecyclerView.setAdapter(hAdapter);
}

вот вторая активность

private void getAuctionDetail(){

    final ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("Loading...");
    pDialog.show();

    JSONObject jsonObject = null;
    LoginBean loginBean = new LoginBean();
    mSharedPreferences = getSharedPreferences("user_preference", Context.MODE_PRIVATE);
    if(mSharedPreferences==null)
        return;
    String authorizationKey = mSharedPreferences.getString("authorization_key","");
    String userId = mSharedPreferences.getString("userId", "");
    //MyAuctionListBean listBean = new MyAuctionListBean();

    try {

        jsonObject = new JSONObject();
        jsonObject.putOpt("authorization_key",authorizationKey);
        jsonObject.putOpt("in_user_id",userId);
        jsonObject.putOpt("device_token","1111");
        jsonObject.putOpt("mac_address","1111");
        jsonObject.putOpt("gps_latitude","1111");
        jsonObject.putOpt("gps_longitude","1111");
        jsonObject.putOpt("in_auction_id","");

    } catch (JSONException e) {
        e.printStackTrace();
    }

    CustomJSONObjectRequest jsonObjectRequest = new CustomJSONObjectRequest(Request.Method.POST, Constants.MYAUCTION_DETAIL_URL, jsonObject, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            getMyAuctionDetails(response);
            Utility.showLogError(AuctionActivity.this, "GetAuctionDetailsResponse" + response.toString());
            pDialog.hide();


        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            pDialog.hide();
        }
    });
    Utility.showLogError(AuctionActivity.this, "Error in Detail"+"GetAuctionDetails URL = " + Constants.MYAUCTION_DETAIL_URL);
    AppController.getInstance().addToRequestQueue(jsonObjectRequest);

}

private void getMyAuctionDetails(JSONObject response) {
    MyAuctionDetailsBean myAuctionDetailsBean = new MyAuctionDetailsBean();
    if (response != null){
        try {
            JSONArray jsonArray = response.getJSONArray("success");
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                myAuctionDetailsBean.setAuction_id(jsonObject.getString("auction_id"));
                myAuctionDetailsBean.setContact_person(jsonObject.getString("contact_person"));
                myAuctionDetailsBean.setPrimary_contact_no(jsonObject.getString("primary_contact_no"));
                myAuctionDetailsBean.setAlternate_contact_no(jsonObject.getString("alternate_contact_no"));
                myAuctionDetailsBean.setAuction_title(jsonObject.getString("auction_title"));
                myAuctionDetailsBean.setClient_email(jsonObject.getString("client_email"));

                myAuctionDetailsBean.setStart_date(jsonObject.getString("start_date"));
                myAuctionDetailsBean.setEnd_date(jsonObject.getString("end_date"));
                myAuctionDetailsBean.setLocation(jsonObject.getString("location"));

                myAuctionDetailsBean.setPeople_range(jsonObject.getString("people_range"));
                myAuctionDetailsBean.setPrice_range(jsonObject.getString("price_range"));
                myAuctionDetailsBean.setFeatures_id(jsonObject.getString("features_id"));
                myAuctionDetailsBean.setCuisine_id(jsonObject.getString("cuisine_id"));
                myAuctionDetailsBean.setIs_active(jsonObject.getString("is_active"));
                myAuctionDetailsBean.setTheme_id(jsonObject.getString("theme_id"));
                myAuctionDetailsBean.setEvent_type_id(jsonObject.getString("event_type_id"));
                myAuctionDetailsBean.setTotal_bid_count(jsonObject.getString("total_bid_count"));
                myAuctionDetailsBean.setTotal_quoted(jsonObject.getString("total_quoted"));
                myAuctionDetailsBean.setTAproved(jsonObject.getString("TAproved"));
                myAuctionDetailsBean.setAuction_description(jsonObject.getString("auction_description"));
                myAuctionDetailsBean.setEvent_name(jsonObject.getString("event_name"));
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    partyType.setText(myAuctionDetailsBean.getEvent_name());
    location.setText(myAuctionDetailsBean.getLocation());
    date.setText(myAuctionDetailsBean.getStart_date());
    time.setText(myAuctionDetailsBean.getEnd_date());
    theme.setText(myAuctionDetailsBean.getTheme_id());
    noOfPeople.setText(myAuctionDetailsBean.getPeople_range());
    mobileNo.setText(myAuctionDetailsBean.getPrimary_contact_no());
    emailId.setText(myAuctionDetailsBean.getClient_email());
    cuisine.setText(myAuctionDetailsBean.getCuisine_id());
    requirment.setText(myAuctionDetailsBean.getAuction_description());
    budget.setText(myAuctionDetailsBean.getPrice_range());
    postUser.setText(myAuctionDetailsBean.getContact_person());
}

public void onBackPressed() {
    finish();
}
public class MyAuctionHistoryAdapter extends RecyclerView.Adapter<MyAuctionHistoryAdapter.ViewHolder> {
private List<MyAuctionListBean> list;
private Context hContext;
private ImageLoader imageLoader = AppController.getInstance().getImageLoader();

public MyAuctionHistoryAdapter(Context hContext,List<MyAuctionListBean> list){
    this.hContext = hContext;
    this.list = list;

}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.auction_history_row,parent,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.partyType.setText(list.get(position).getEvent_name());
    holder.partyLocation.setText(list.get(position).getLocation());
    holder.date.setText(list.get(position).getAuction_date());
    holder.bidCount.setText(list.get(position).getTotal_bid_count());
    holder.priceRange.setText(list.get(position).getPrice_range());
    holder.auctionDetailRowLay.setId(Integer.parseInt(list.get(position).getAuction_id()));
    holder.rowAuction_Id.setText(list.get(position).getAuction_id());


}

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

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
    private TextView partyType,partyLocation,restroType,budget,requirments,date,priceRange,bidCount;
    private RelativeLayout auctionDetailRowLay;
    private ImageView restoIcon;
    TextView rowAuction_Id;

    public ViewHolder(View view) {

        super(view);
        view.setOnClickListener(this);
        partyType = (TextView)view.findViewById(R.id.H_auctionPartyType);
        partyLocation = (TextView)view.findViewById(R.id.H_auctionLocation);
        restroType = (TextView)view.findViewById(R.id.restro_Name);
        budget = (TextView)view.findViewById(R.id.H_auction_Budget);
        requirments = (TextView)view.findViewById(R.id.H_auctionRequirments);
        date = (TextView)view.findViewById(R.id.H_auctionDate);
        bidCount = (TextView)view.findViewById(R.id.H_auction_Bids);
        priceRange = (TextView)view.findViewById(R.id.H_auction_RangeList);
        auctionDetailRowLay= (RelativeLayout)view.findViewById(R.id.auctionDetailRow);
        rowAuction_Id = (TextView)view.findViewById(R.id.row_Auction_id);


    }
    @Override
    public void onClick(View v) {

        Intent intent = new Intent(hContext, AuctionActivity.class);
        hContext.startActivity(intent);

    }


}

}

01.02.2016

  • Где onItemClickListener код? 01.02.2016
  • много нерелевантного кода, но важные части (кликните прослушиватель, как вы открываете другое действие, где вы хотите получить идентификатор в другом действии, ...) отсутствуют 01.02.2016
  • onItemClickListener находится в адаптере просмотра списка 01.02.2016
  • Где твой ListView Adapter code ? 01.02.2016
  • во втором действии, т.е. MyAuctionHistoryAdapter 01.02.2016
  • stackoverflow.com/a/34720781/2826147 01.02.2016

Ответы:


1

В recycleRview вы можете использовать getPosition, чтобы получить позицию clickedItem, как показано ниже.

@Override
        public void onClick(View view) {
            Log.d(TAG, "onClick " + getAdapterPosition());
            CustomBean bean =list.get(getAdapterPosition())
             String id = bean.getAcutionId()
              // now intent it
         }

По этой позиции вы получите данные от ArrayList

01.02.2016
  • это полезно для вас? 01.02.2016
  • Лучше использовать getAdapterPosition(), потому что getPosition() было deprecated 01.02.2016
  • Нет, каждая строка имеет разные-2 аукциона_id, и этот идентификатор используется в качестве входных данных для второго действия. 01.02.2016
  • я думаю, у вас есть индекс (позиция) элемента arraylist, просто получайте данные из этой позиции и передайте их другому действию 01.02.2016
  • эй, Анджали, могу ли я использовать это putExtra() и getExtra() 01.02.2016
  • @AnjaliTripathi, пожалуйста, объясните, я получаю исключение нулевого указателя 01.02.2016
  • используйте getStringExtra (KEY) 01.02.2016
  • ссылка stackoverflow.com /questions/35097510/unable-to-get-intent-value/ 01.02.2016

  • 2

    Во-первых, учитывая имя объявленной вами переменной «hRecyclerView», кажется, что вы используете RecyclerView, а не Listview. Я предполагаю, что вы используете RecyclerView.

    В вашем MyAuctionHistoryAdapter вам необходимо переопределить методы getItemId() и onBindViewHolder().

    public class MyAuctionHistoryAdapter extends RecyclerView.Adapter<GenericRecyclerAdapter.ViewHolder< MyAuctionListBean >> {
    
    private List<MyAunctionListBean> mList = new ArrayList<Bean>();
    
    public MyAunctionHistoryAdapter(Context context,ArrayList< MyAuctionListBean> list) {
    
    mList = list;
    
    //each item in the list will have the auction id as their id.
    public int getItemId(position) {
      return mList.get(position).getAuncion_id();
    }
    
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position)
    {
    
    
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
    
         @Override
         public void onClick(View view) {
          Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
          intent.putExtra(SecondActivity.EXTRA,getItemId(position));
          startActivity(intent);
         }
    
         });
    }
    

    Теперь каждый раз, когда вы нажимаете на элемент в списке, он переходит к другому действию.

    public class SecondActivity extends Activity {
    public static final String EXTRA = "EXTRA";
    
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // here is the intent you need
    int aunctionId = getIntent().getStringExtra(EXTRA);
    
    
    
    }
    
    }
    
    01.02.2016
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...