#java #android #android-arrayadapter
#java #Android #android-arrayadapter
Вопрос:
В операции Numbers содержимое не отображается. я боролся с этим в течение последних двух дней.Я много искал и ничего не нашел.поэтому спрашиваю только я.
Вот мой код. NumbersActivity.java
package com.example.android.miwok;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import java.util.ArrayList;
public class NumbersActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_numbers);
// Create a list of words
ArrayList<Word> words = new ArrayList<Word>();
words.add(new Word("one","lutti"));
words.add(new Word("two","otikko"));
words.add(new Word("three","tolokooosu"));
words.add(new Word("four","oyyisa"));
words.add(new Word("five","massokka"));
words.add(new Word("six","temmokka"));
words.add(new Word("seven","kenakaku"));
words.add(new Word("eight","kawinta"));
words.add(new Word("nine","woe"));
words.add(new Word("ten","naaaache"));
WordAdapter adapter = new WordAdapter(this,R.layout.list_item,words);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);
}}
activity_numbers.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/list"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android.miwok.NumbersActivity"/>
WordAdapter.java
package com.example.android.miwok;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import java.util.ArrayList;
public class WordAdapter extends ArrayAdapter<Word> {
public WordAdapter(Context context, int resource) {
super(context, resource);
}
public WordAdapter(NumbersActivity context, int resource, ArrayList<Word> words) {
super(context, resource, words);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item, parent, false);
}
return listItemView;
}
}
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@ id/miwok_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="lutti"/>
<TextView
android:id="@ id/default_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="one"/>
</LinearLayout>
Word.java
package com.example.android.miwok;
public class Word {
private String mDefaultTranslation;
private String mMiwokTranslation;
public Word(String mDefaultTranslation, String mMiwokTranslation){
this.mDefaultTranslation = mDefaultTranslation;
this.mMiwokTranslation = mMiwokTranslation;
}
public String getDefaultTranslation(){
return mDefaultTranslation;
}
public String getmMiwokTranslation(){
return mMiwokTranslation;
}
}
И мой скриншот
Комментарии:
1. Сначала вы должны объяснить, чего вы пытаетесь достичь, а затем как. После этого вы должны сказать, что работает, а что нет. Или что происходит вместо этого. Вы действительно думаете, что мы будем копаться в вашем коде, чтобы выяснить? Нет. Вы должны сообщить нам об этом в начале своего поста.
2. Извините, это мой первый пост,
Ответ №1:
Вы не устанавливаете данные в методе getView. сначала вам нужно создать переменную вашего пользовательского списка в адаптере, затем инициализировать ее в конструкторе, вы передаете данные, но нигде не устанавливаете в adatper. затем установите эти данные в методе getView. также вам необходимо создать класс viewholder для создания ссылки на textviews в вашем адаптере
Комментарии:
1. Привет. Спасибо за ответ. я новичок, я не понимаю, о чем вы говорите. Не могли бы вы сказать, какую строку мне следует добавить куда.