Помогите понять ошибку (i cannot be resolved to a variable)

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Al_Sha
Сообщения: 4
Зарегистрирован: 02 дек 2013, 21:01

Помогите понять ошибку (i cannot be resolved to a variable)

Сообщение Al_Sha » 19 дек 2013, 07:33

Здравствуйте, уважаемые!
Помогите понять наличие ошибки...

Активиту Search.java
Поиск осуществляется из XML файла в RAW

Код: Выделить всё

package com.inter.spravka;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Search extends ListActivity
{
  ArrayList<String> layoutList = new ArrayList();
  ArrayList<String> titleList = new ArrayList();

  public void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    setTitle("Результаты поиска");
    
    setContentView(R.layout.list_view);
    String str = getIntent().getExtras().getString("query").toLowerCase();
    while (true)
    {
      int i;
      try
      {
        InputStream localInputStream = getResources().openRawResource(R.raw.articles);
     
               
    	  NodeList localNodeList = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(localInputStream).getElementsByTagName("answer");
        i = 0;
        int j = localNodeList.getLength();
        if (i >= j)
        {
          if (this.titleList.size() == 0)
            ((TextView)findViewById(R.id.list_view_error)).setVisibility(0);
            
          setListAdapter(new ItemsAdapter(this, android.R.layout.simple_list_item_1, this.titleList, null));
                  
          return;
        }
        Node localNode = localNodeList.item(i).getChildNodes().item(11).getChildNodes().item(0);
        if ((localNode != null) && (localNode.getNodeValue().toLowerCase().contains(str)))
        {
          this.titleList.add(localNodeList.item(i).getChildNodes().item(7).getChildNodes().item(0).getNodeValue());
          this.layoutList.add(localNodeList.item(i).getChildNodes().item(15).getChildNodes().item(0).getNodeValue());
        }
      }
      catch (Exception localException)
      {
        Toast.makeText(getApplicationContext(), localException.toString(), 1).show();
        continue;
      }
      i++;
    }
  }

  private class ItemsAdapter extends ArrayAdapter<String>
  {
    	private ArrayList<String> items;
    View.OnClickListener onCheckChangeListener = new View.OnClickListener()
    {
      public void onClick(View paramAnonymousView)
      {
        String str = (String)Search.this.layoutList.get(paramAnonymousView.getId());
        if (str.contains("single"));
        for (Intent localIntent = new Intent(Search.this.getApplicationContext(), Single.class); ; 
        		localIntent = new Intent(Search.this.getApplicationContext(), Tabbed.class))
        {
          localIntent.putExtra("title", (String)Search.this.titleList.get(paramAnonymousView.getId()));
          localIntent.putExtra("layout", Search.this.getResources().getIdentifier(str, "layout", Search.this.getPackageName()));
          Search.this.startActivity(localIntent);
          do
            return;
          while (!str.contains("tabbed"));
       }
      }
    };
  
     public ItemsAdapter(Search search, int paramArrayList, ArrayList<String> arg3, ArrayList<String> localList ) 
    {
    super(i, localList);
super(i, localList);
Здесь присутствует ошибка (i cannot be resolved to a variable)

Продолжение кода

Код: Выделить всё

this.items = localList; 
       
  }

    public View getView(int paramInt, View paramView, ViewGroup paramViewGroup)
    {
      View localView = paramView;
      if (localView == null)
        localView = ((LayoutInflater)Search.this.getSystemService("layout_inflater")).inflate(R.layout.list_view_item, null);
         ((Button)localView).setText((CharSequence)this.items.get(paramInt));
      ((Button)localView).setBackgroundResource(R.drawable.btn_red);
      localView.setId(paramInt);
      localView.setOnClickListener(this.onCheckChangeListener);
      return localView;
    }
  }
}
С уважением
Al_Sha

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Помогите понять ошибку (i cannot be resolved to a variab

Сообщение Mikhail_dev » 19 дек 2013, 08:23

метод super вызывает конструктор суперкласса, от которого был унаследован текущий класс, а именно ArrayAdapter. Класс ArrayAdapter не имеет конструктора, где первым параметром идет тип int (переменная i).
В документации http://developer.android.com/reference/ ... apter.html сказано что есть только такие конструкторы
Constructor
ArrayAdapter(Context context, int resource)
Constructor
ArrayAdapter(Context context, int resource, int textViewResourceId)
Constructor
ArrayAdapter(Context context, int resource, T[] objects)
Constructor
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
Constructor
ArrayAdapter(Context context, int resource, List<T> objects)
Constructor
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
Constructor

Ответить