i´m newbie in android programming and try to set two Image Array from (Values)XML in to one common Array using TypedArray.
Here are my XML Arrays:
<array name="Img1">
<item> @drawable/pic_1 </item>
<item> @drawable/pic_2 </item>
<item> @drawable/pic_3 </item>
</array>
<array name="Img2">
<item> @drawable/pic_4 </item>
<item> @drawable/pic_5 </item>
<item> @drawable/pic_6 </item>
</array>
imprtant part of java code in onCreate method:
private TypedArray Images;
TypedArray img1 = res.obtainTypedArray(R.array.Img1);
TypedArray img2 = res.obtainTypedArray(R.array.Img2):
ArrayList<TypedArray> img = new ArrayList<TypedArray>();
img.addAll(Arrays.asList(img1));
img.addAll(Arrays.asList(img2));
Images = img.toArray(new TypedArray(img1.length()+img2.length); <-- NOT WORKING!
what ist wron in my code? maybe i can solve the problem by another way?
Thank you very much!!!
public class c_DTArtikel_allforsearch extends Activity implements AdapterView.OnItemClickListener { //Variablen deklarieren! private ListView ListViewLayout; private String[] Number; private int[] ImagesID; private EditText Search; ArrayList name = new ArrayList();
My method:
private ListView ListViewLayout;
private int[] ImagesID;
private EditText Search;
ArrayList<String> name = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_lv_search);
Resources res = getResources();
String[] saugname = res.getStringArray(R.array.SauglanzeName);
String[] pumpmname = res.getStringArray(R.array.PumpMName);
String[] saugnummer = res.getStringArray(R.array.SauglanzeNumber);
String[] pumpmnummer = res.getStringArray(R.array.PumpMNummer);
TypedArray saugimg = res.obtainTypedArray(R.array.SauglanzeImg);
TypedArray pumpmimg = res.obtainTypedArray(R.array.PumpeMImg);
name.addAll(Arrays.asList(saugname));
name.addAll(Arrays.asList(pumpmname));
ArrayList<String> number = new ArrayList<String>();
number.addAll(Arrays.asList(saugnummer));
number.addAll(Arrays.asList(pumpmnummer));
Number = number.toArray(new String[saugnummer.length+pumpmnummer.length]);
ArrayList<Integer> imgInts = new ArrayList<Integer>();
int nr = -1;
while ( ++nr < saugimg.length() )
imgInts.add (saugimg.getResourceId(nr, 0));
nr = -1;
while ( ++nr < pumpmimg.length() )
imgInts.add (pumpmimg.getResourceId(nr, 0));
ImagesID = new int[imgInts.size()];
for (int i=0; i < imgInts.size(); i++)
{
ImagesID[i] = ((Integer) imgInts.get(i)).intValue();
}
Search = (EditText) findViewById(R.id.EditTextSearch);
ListViewLayout = (ListView) findViewById(R.id.listViewLayoutSearch);
final TIAdapter adapter = new TIAdapter(this, name, ImagesID, Number);
ListViewLayout.setAdapter(adapter);
ListViewLayout.setOnItemClickListener(this);
Search.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
adapter.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
class Adapter:
class TIAdapter extends ArrayAdapter<String> {
Context context;
int [] ImagesID;
ArrayList<String> NameArray;
String[] NummerArray;
TIAdapter(Context c, ArrayList<String> Artikel, int[] imgs, String[] Nummer) {
super(c, R.layout.layout_text_image, R.id.textViewArtikel, Artikel);
this.context = c;
this.ImagesID = imgs;
this.NameArray = Artikel;
this.NummerArray = Nummer;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ImageView imageView = null;
if(row == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.layout_text_image, parent, false);
imageView = (ImageView)row.findViewById(R.id.imageViewArtikel);
}
else {
imageView = (ImageView)row.findViewById(R.id.imageViewArtikel);
DecodeTask dt1 = (DecodeTask)imageView.getTag(R.id.imageViewArtikel);
if(dt1 != null)
dt1.cancel(true);
}
imageView.setImageBitmap(null);
DecodeTask dt2 = new DecodeTask(getContext(), imageView, ImagesID[position]);
dt2.execute();
TextView textViewArtikel = (TextView) row.findViewById(R.id.textViewArtikel);
TextView textViewArtikelNummer = (TextView) row.findViewById(R.id.textViewArtikelNummer);
imageView.setTag(R.id.imageViewArtikel, dt2);
textViewArtikel.setText(name.get(position));
textViewArtikelNummer.setText(Number[position]);
return row;
}
}