2016-01-21 2 views
2

я хочу интегрировать Horizonal Scrollview с пользовательской линейной компоновкой Inflater поэтому я ниже кодаLinearLayout дисплея последних данные андроида

for (int i=0;i<mArrayListPersonDataLists.size();i++) 
{ 
    View child = getLayoutInflater().inflate(R.layout.row_pager_layout, null); 
    TextView mTextView1=(TextView)child.findViewById(R.id.row_txt_name); 
    TextView mTextView2=(TextView)child.findViewById(R.id.row_txt_email); 
    TextView mTextView3=(TextView)child.findViewById(R.id.row_txt_gender); 
    mLinearLayout.removeAllViews(); 
    mTextView1.setText(mArrayListPersonDataLists.get(i).getName()); 
    mTextView2.setText(mArrayListPersonDataLists.get(i).getEmail()); 
    mTextView3.setText(mArrayListPersonDataLists.get(i).getGender()); 
    mLinearLayout.addView(child); 
} 

в выше моем списке массива включает 9 данных, но в экране это отображение только один данные так что любая идея, как я могу это решить?

+0

mLinearLayout.removeAllViews(); удалите эту строку и проверьте – Pavya

ответ

1

попробовать это ...

for (int i=0;i<mArrayListPersonDataLists.size();i++) 
{ 
View child = getLayoutInflater().inflate(R.layout.row_pager_layout, null); 
TextView mTextView1=(TextView)child.findViewById(R.id.row_txt_name); 
TextView mTextView2=(TextView)child.findViewById(R.id.row_txt_email); 
TextView mTextView3=(TextView)child.findViewById(R.id.row_txt_gender); 
mTextView1.setText(mArrayListPersonDataLists.get(i).getName()); 
mTextView2.setText(mArrayListPersonDataLists.get(i).getEmail()); 
mTextView3.setText(mArrayListPersonDataLists.get(i).getGender()); 
mLinearLayout.addView(child); 
child.setId(i+1) 
child.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
        //your code here 
        int position=child.getId()-1; 
        Toast.makeText(HorizontalAcivity.this, mArrayListPersonDataLists.get(position).getName(), Toast.LENGTH_SHORT).show();      
        } 
}); 
} 
+0

Ya, но как я могу написать мудрую ценность в виде частиц в дочернем клике? – user3264863

+0

вы можете получить позицию, когда вы нажимаете на вид (например, ребенок). Также, чтобы с помощью onClicklistener выполнить условие, чтобы проверить, какая позиция запускается, и делать действия. – Vishwa

+0

Я пробую этот код int pos = child.getId(); Toast.makeText (HorizontalAcivity.this, mArrayListPersonDataLists.get (pos) .getName(), Toast.LENGTH_SHORT) .show(); но он дает мне ошибку, как indexoutofbound. – user3264863

1

Удалить линию с mLinearLayout.removeAllViews(); :)

+0

Ya это работает! но как я могу получить элемент для элемента частиц? – user3264863

+0

Вы должны использовать ListView вместо ScrollView. Тогда вы можете использовать '' 'ListView.setOnItemClickListener()' '' – FeelGood

+0

. Ваш ответ также прав, поэтому я даю вам 1 голос за это – user3264863

2

Вы должны написать эту функцию, как это

mLinearLayout.removeAllViews(); 
for (int i=0;i<mArrayListPersonDataLists.size();i++) 
{ 
    View child = getLayoutInflater().inflate(R.layout.row_pager_layout, null); 
    TextView mTextView1=(TextView)child.findViewById(R.id.row_txt_name); 
    TextView mTextView2=(TextView)child.findViewById(R.id.row_txt_email); 
    TextView mTextView3=(TextView)child.findViewById(R.id.row_txt_gender); 
    mTextView1.setText(mArrayListPersonDataLists.get(i).getName()); 
    mTextView2.setText(mArrayListPersonDataLists.get(i).getEmail()); 
    mTextView3.setText(mArrayListPersonDataLists.get(i).getGender()); 
    mLinearLayout.addView(child); 
} 
+0

Ваш ответ также прав, поэтому я даю вам 1 голос за это – user3264863

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