2013-07-19 2 views
0

У меня есть элемент ListView, в котором есть две кнопки. Есть несколько элементов ListView, поэтому есть много кнопок. Как назначить другое значение для каждой кнопки? Я хочу, чтобы каждая кнопка приводила к одной и той же активности, но когда она переходит к новому действию, она посылает значение, которое была назначена кнопке. Затем активность может обрабатывать значение. Я хочу, чтобы значения, назначенные кнопкам, чтобы быть таким же, как то, что текст установлен, вот мой baseAdapterКак назначить разные значения кнопкам в спискеView - Android

class CreateCommentLists extends BaseAdapter{ 
      Context ctx_invitation; 
      String[] listComments; 
      String[] listNumbers; 
      String[] listUsernames; 


      public CreateCommentLists(String[] comments, String[] usernames, String[] numbers, DashboardActivity context) 
      { 
       super(); 
       ctx_invitation = context; 
       listComments = comments; 
       listNumbers = usernames; 
       listUsernames = numbers; 
      } 

      @Override 
      public int getCount() { 
       if(null == listComments) 
       { 
       return 0; 
       } 

       // TODO Auto-generated method stub 
       return listComments.length; 
      } 

      @Override 
      public Object getItem(int position) { 
       // TODO Auto-generated method stub 
       return listComments[position]; 
      } 

      @Override 
      public long getItemId(int position) { 
       // TODO Auto-generated method stub 
       return 0; 
      } 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 
       View v = null; 
       try 
       { 
        String inflater = Context.LAYOUT_INFLATER_SERVICE; 
        LayoutInflater li = (LayoutInflater)ctx_invitation.getSystemService(inflater); 
        v = li.inflate(R.layout.list_item, null); 

        TextView commentView = (TextView)v.findViewById(R.id.listComment); 
        TextView NumbersView = (TextView)v.findViewById(R.id.listNumber); 
        TextView usernamesView = (TextView)v.findViewById(R.id.listPostedBy); 
        Button usernameButton = (Button)v.findViewById(R.id.listUsernameButton); 
        Button numberButton = (Button)v.findViewById(R.id.listNumberButton); 

        commentView.setText(listComments[position]); 
        NumbersView.setText(listNumbers[position]); 
        usernamesView.setText(listUsernames[position]); 
        usernameButton.setText("Go to " + listUsernames[position]); 
        numberButton.setText("Go to " + listNumbers[position]); 
       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 
       return v; 
      } 

      } 
+0

И ваш 'Intent'? Вы можете поместить дополнительные значения в намерение и прочитать их в запущенной деятельности. – ozbek

+0

но как это сделать? –

+0

Пожалуйста, напишите ваше намерение :) – ozbek

ответ

1
usernameButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(CurrentActivity.this, TargetActivity.class); 
       intent.putExtra("param", listUsernames[position]); 
       startActivity(intent); 
      } 
     }); 
} 
+0

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

+0

Кроме того, я пробовал это, и он не работает, я хочу, чтобы param являлся именами пользователей, и это дает мне ошибку, когда я пытаюсь это сделать. –

+0

add intent.setFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP); затем переопределите методNewIntent (намерение намерения) в TargetActivity, чтобы вы могли получить последнее намерение. – JaredLuo

Смежные вопросы