Проблема с идентификатором ListView - PullRequest
1 голос
/ 06 июля 2011

У меня проблема, моя ListActivity.

У меня есть этот xml:

<LinearLayout>
    <ListView 
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />
</LinearLayout>

и внутри у меня это:

<LinearLayout>
    <ImageView android:id="@+id/flechas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <TextView android:id="@+id/textoName"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
    />
    <TextView android:id="@+id/textoPrice"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
    />
    <Button android:id="@+id/boton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="BUY"
        android:layout_marginRight="0dip"
        android:onClick="buy"
    />
</LinearLayout>

Я использую BaseAdapter, чтобы показать его, и это основной файл:

public class Info  extends ListActivity{

static ArrayList<Quotes> objeto= null;
static final ArrayList<HashMap<String, String>> lista= new ArrayList<HashMap<String,String>>();
private ListView mainListView;
private InfoModel [] model;
private CustomAdapterInfo listAdapter;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mainListView= (ListView)findViewById(R.id.);
    setContentView(R.layout.info);


    objeto= new ArrayList<Quotes>();
    Bundle extras=getIntent().getExtras();
    objeto= extras.getParcelableArrayList("datos");

    if ((objeto != null) && (objeto.size() != 0)){
        model= new InfoModel[objeto.size()];
        for (int i=0;i< objeto.size(); i++) {
            model[i]= new InfoModel(0, objeto.get(i).getName(), objeto.get(i).getTrade());
        }
    }

    ArrayList<InfoModel> datos= new ArrayList<InfoModel>();
    datos.addAll(Arrays.asList(model));

    listAdapter= new CustomAdapterInfo(this, datos);
    mainListView.setAdapter(listAdapter);
}

Но мой mainListView равен нулю. Не находит R.id.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 06 июля 2011
android:id="@android:id/list"

Полагаю, это должен быть ваш собственный идентификатор.Как это:

android:id="@+id/main_list_view"

После этого вы можете получить к нему доступ, используя что-то вроде:

mainListView= (ListView)findViewById(R.id.main_list_view);
1 голос
/ 06 июля 2011

"@ android: id / list" означает, что это часть пакета Android, которую вы не можете вызвать с помощью R.id.list (попробуйте этот android.R.id.list) в качестве класса Rсгенерированный для вашего пакета ADT, вместо этого вы можете получить объект ListView, так как ListView lView = getListView () используйте метод setContentView сверху, прежде чем вы найдете какие-либо объекты View из XML (макеты), в противном случае вы получите NullPointerException.

1 голос
/ 06 июля 2011

Если вы следуете этому примеру .

Если ваша деятельность расширяет ListActivity, ваш XML должен иметь ListView с:

android:id="@android:id/list"

Этоправильный.Но способ инициализации ListView отличается:

ListView lv = getListView();

Это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...