2015-09-13 2 views
0

У меня есть активность Mainactivity, в этом случае при нажатии кнопки он отображает список. Но вНе удается разрешить конструктор ArrayAdapter при использовании ListView в Android Studio

listAdapter = new ArrayAdapter (это, android.R.layout.simple_list_item_1, android.R.id.text1, value);

Я получаю "Не удается разрешить конструктор ArrayAdapter (анонимный андроида view.View.OnClickListener, Int, Int, java.lang.String)"

Мой внешний класс "Mainactivity" Я пытался "Mainactivity.this" вместо этого". Но он показывает ошибку «не могу разрешить конструктор».

MainActivity класс расширяет Actionbaractivity реализует onItemelectedListner

Мой код:

ok.setOnClickListener (новый View.OnClickListener() {

 @Override 
     public void onClick(View v) { 
      if(cnt.getText().toString().length() > 0 && 
        number.getText().toString().length() > 0 && 
        Integer.parseInt(number.getText().toString()) > 0 && 
        Integer.parseInt(cnt.getText().toString()) > 0) { 
        number.requestFocus(); 
        String[] value = new String{"hello","world"}; 

        try { 
         temp_count = temp_count + Integer.parseInt(cnt.getText().toString()); 
         count.setText(String.valueOf(temp_count)); 
         temp_amt = temp_amt + (Integer.parseInt(cnt.getText().toString()) * tkt_rate); 
         amount.setText(String.valueOf(temp_amt)); 

         ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, 
         android.R.layout.simple_list_item_1, android.R.id.text1, value); 

         lstView.setAdapter(listAdapter); 
         lstView.setOnItemClickListener(new OnItemClickListener() { 
          @Override 
          public void onItemClick(AdapterView<?> parent, View view, 
                int position, long id) { 

           SparseBooleanArray checked = lstView.getCheckedItemPositions(); 
           int size = checked.size(); // number of name-value pairs in the array 
           for (int i = 0; i < size; i++) { 
            int key = checked.keyAt(i); 
            boolean value = checked.get(key); 
            if (value) { 
             row = lstView.getChildAt(i); 
             row.setBackgroundColor(Color.parseColor("#33B5E5")); 
            } else { 
             row = lstView.getChildAt(i); 
             row.setBackgroundColor(Color.parseColor("#F0F0F0")); 
            } 
           } 
          } 
         }); 

Пожалуйста, помогите ...

+0

Вам необходимо пройти массив или ArrayList , Отправьте свой журнал. – Pankaj

+0

Мне нужно передать массив, вопрос обновлен. Я получаю ошибки времени компиляции – Msn

+0

Скопируйте полное предложение об ошибке и вставьте сюда –

ответ

1

В ошибка показывает, что вы ставите android view.View.OnClickListener в качестве первого аргумента.

Я знаю, что вы сказали, что попробовали, но вам действительно нужно использовать Mainactivity.this. Если он не работает, отправьте код начала вашего java-файла.

Также ваша деятельность называется Mainactivity? Помните, что он чувствителен к регистру, должен ли он быть MainActivity? Если это так, вы должны использовать MainActivity.this

+0

Открытый класс MainActivity extends ActionBarActivity реализует OnItemSelectedListener { Button add; Кнопка ok; Переопределить protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); add = (кнопка) findViewById (R.id.btn_new); radioGroup = (RadioGroup) findViewById (R.id.radioGroup); spinner = (Spinner) findViewById (R.id.spinner); прядильщик.setOnItemSelectedListener (это); ok.setOnClickListener (новый View.OnClickListener() { Override общественного недействительными OnClick (View v) {// – Msn

+0

выше комментарий продолжает ArrayAdapter listAdapter = новый ArrayAdapter ((активность), это android.R.layout. simple_list_item_1, android.R.id.text1, значение); lstView.setAdapter (listAdapter); lstView.setOnItemClickListener (новый OnItemClickListener() { @Override общественные недействительная onItemClick (AdapterView родитель, вид вид, INT позиции , long id) { – Msn

+0

, то, очевидно, вы должны u се 'новый ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, значение);' –

0

Я думаю, что это происходит потому, что ваш класс реализует onclicklistener. Так можете ли вы попробовать лить this в Activity? Как и код ниже:

listAdapter = new ArrayAdapter((Activity)this, android.R.layout.simple_list_item_1, android.R.id.text1, value); 
+1

Я попробовал это. все еще получая ошибку как «inConvertible Types», не может использовать Anonymos android.view.View.onClickListner для Android.app.Activity ». – Msn

0

ArrayAdapter нуждается в Context в качестве первого аргумента. Что вы можете сделать, так это иметь полевую ссылку на ваш Context, как и следующие.

  1. Добавлено поле для вашей деятельности, private Context mContext;
  2. Внутри OnCreate() вашей деятельности, mContext = this;
  3. Используйте mContext построить ArrayAdapter, listAdapter = new ArrayAdapter(mContext, android.R.layout.simple_list_item_1, android.R.id.text1, value);
Смежные вопросы