2016-02-24 4 views
1

им пытаются заполнить ListView с arrayadapterArrayAdapter для массива в ArrayList

public class MainActivity extends Activity { 

    int numOfArray=3; 
    float val= (float) 5.23; 
    String b="col"; 
    String c="usd"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     String[] mView; 



     List<String[]> mString = new ArrayList<>(); 
     for (int i=0; i<numOfArray; i++) { 

      mView = new String[3]; 
      mView[0] = c; 
      mView[1] = b; 
      mView[2] = String.valueOf(val); 
      mString.add(mView); 
     } 




     ListAdapter mAdapter = new custom_adapter(this, mString); 
     ListView mListView = (ListView)findViewById(R.id.listView);mListView.setAdapter(mAdapter); 

    } 
} 

и адаптер

class custom_adapter extends ArrayAdapter{ 
    public custom_adapter(Context context, List<String[]> mString) { 
     super(context, R.layout.custom_list,mString); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater mInflater = LayoutInflater.from(getContext()); 
     View customView = mInflater.inflate(R.layout.custom_list, parent, false); 


     String[] mString = (String[]) getItem(position); 



     TextView mText = (TextView) customView.findViewById(R.id.textView);mText.setText(??); 
     ImageView mImage = (ImageView) customView.findViewById(R.id.image);mImage.setImageResource(R.drawable.image); 
     return customView; 

    } 


} 

проблема есть, я использую массив внутри ArrayList. Я попытался передать его в другую строку [], но получил ошибку при получении().

String[] mString = (String[]) getItem(position); 
String[] aString = mString; aString.get(0); 

я искал о том, как получить значение элемента массива из этих пределах ArrayList, чтобы заполнить TextView, но я не могу получить никакого ответа или refrence, чтобы сделать это.

любой ответ или refrence поможет. tyvm.

+0

aString - массив, ther e не имеет метода get в массиве. Используйте aString [0] –

ответ

0

Вы не можете использовать методы на массивах «aString.get (0)», вместо этого вы должны использовать «aString [0]».

Так что:

String[] mString = (String[]) getItem(position); 
String[] aString = mString; **aString.get(0);** 

Должно быть так:

String[] mString = (String[]) getItem(position); 
String[] aString = mString; 
**String value = aString[0];** 

WHAS этого ваш вопрос? Я надеюсь, что это помогает

0

Проблема заключается в том, что вы не получаете arraylist ценности через constuctor как этот посещайте ошибка

this.mStringarray=mString; 

и установить здесь как этот

mText.setText(mStringarray[position]); 

Используйте ниже код

class custom_adapter extends ArrayAdapter{ 
    String[] mStringarray; 
     public custom_adapter(Context context, List<String[]> mString) { 
      super(context, R.layout.custom_list,mString); 
      this.mStringarray=mString; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      LayoutInflater mInflater = LayoutInflater.from(getContext()); 
      View customView = mInflater.inflate(R.layout.custom_list, parent, false); 


      TextView mText = (TextView) customView.findViewById(R.id.textView); 
      mText.setText(mStringarray[position]); 
      ImageView mImage = (ImageView) customView.findViewById(R.id.image);mImage.setImageResource(R.drawable.image); 
      return customView; 

     } 


    } 
+0

, может быть, мой способ спросить был немного запутанным. но я пытаюсь получить элемент массива внутри arraylist. не от арраиста. ty для ответа @quick –

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