| |||||||
Das Thema "probleme mit custom widget/Gallery" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Modell: eclipse android emulator Registriert seit: 02.05.2010
Beiträge: 76
Abgegebene Danke: 15
Erhielt 0 Danke für 0 Beiträge
| ich habe mein Problem schon in einem englisch sprachigen Forum gepostet. Leider ohne Erfolg(oder mein englisch ist schlecht :-( ) Zu meinem Problem: Ich habe mir ein Custom Widget zum ersten mal selber erstellt und habe nun Probleme Instanzen davon zu verändern. Mein Widget ist eine einfache Gallery mit links und rechts zwei Button. Code: <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton android:id="@+id/toLeft"
android:background="@drawable/arrow_left"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:layout_marginBottom="1dip" />
<Gallery
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:layout_toRightOf="@+id/toLeft"
android:spacing="40dip"
android:scrollbars="horizontal"/>
<ImageButton android:id="@+id/toRight"
android:background="@drawable/arrow_right"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:layout_toRightOf="@+id/gallery" />
</merge> Code: public class GallerySlider extends RelativeLayout implements OnClickListener {
private ArrayAdapter<String> adapter;
private Gallery gallery;
private ImageButton toLeftBtn = null;
private ImageButton toRightbtn = null;
public GallerySlider(Context context) {
super(context, null);
init(context);
}
public GallerySlider(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public GallerySlider(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs);
init(context);
}
public void init(Context ctx){
LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
inflater.inflate(R.layout.customGallery, this, true);
toLeftBtn = (ImageButton) findViewById(R.id.toLeft);
toLeftBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(gallery.getSelectedItemPosition() > 0){
gallery.setSelection(gallery.getSelectedItemPosition()-1);
}
}
});
toRightbtn = (ImageButton) findViewById(R.id.toRight);
toRightbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(gallery.getSelectedItemPosition() < gallery.getAdapter().getCount()-1){
gallery.setSelection(gallery.getSelectedItemPosition()+1);
}
}
});
adapter = new ArrayAdapter<String>(ctx, android.R.layout.simple_gallery_item, new String[] {"1","1",
"1")});
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setBackgroundResource(R.drawable.h_sliderl);
gallery.setAdapter(adapter);
}
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case R.id.toLeft: gallery.setSelection(gallery.getFocusedChild().getId()-1);
break;
case R.id.toRight: gallery.setSelection(gallery.getFocusedChild().getId()+1);
break;
}
}
public void setNewAdapter(ArrayAdapter<String> _adapter){
gallery.setAdapter(_adapter);
((ArrayAdapter) gallery.getAdapter()).notifyDataSetChanged ();
} Ziel ist es jetzt mehrer Instanzen von dem Widget zu verwenden, ich habe ein kleines Beispiel probiert und leider kann ich wie gesagt keine Eigenschaften des Widgets nach dem instanziieren verändern und ich sehe das Problem nicht(es kommt auch keine Error...). Der Code meines Minimalbsp.: Code: public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout lineLayout = (LinearLayout) findViewById(R.id.lin_layout);
ViewStub st3 = new ViewStub(TestwidgetActivity.this);
LinearLayout.LayoutParams paramst3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lineLayout.addView(st3,paramst3);
st3.setLayoutResource(R.layout.test);
st3.inflate();
GallerySlider gSlider= (GallerySlider) View.findViewById(R.id.choose);
gSlider.setNewAdapter( new ArrayAdapter<String>(this, android.R.layout.customGallery, new String[] {"1 ","2","3","4"}));
} Code: <?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lin_layout"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.Test.GallerySlider
android:id="@+id/choose"
android:layout_span="2"
android:layout_width="300dip"
android:layout_height="wrap_content" />
</LinearLayout> In der Gallery müssten eigentlich die Zahlen 1,2,3,4 später angezeigt werden.. leider sind nur die Werte , welche ich beim instanziieren benutze, vorhanden. Ich finde den Fehler leider nicht.. . Log lohnt sich nicht da nichts drin steht und kein Fehler geworfen wird... . Hat Jemand eine Idee? LG Jim |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit Custom Rom | andrenrw | Root / Hacking / Modding für Samsung Galaxy S | 1 | 12.09.2011 10:33 |
| Gallery Ersatz bei Problemen mit der Original Gallery | -FuFu- | Motorola Milestone Forum | 22 | 06.04.2011 19:42 |
| Widget und Kamera verlinken zur 3D Gallery? | r0ckster05 | HTC Desire HD Forum | 1 | 05.02.2011 20:35 |
| [Erste Hilfe] Probleme mit Medien (Gallery, Musikplayer, Videos etc) | -FuFu- | Motorola Milestone Forum | 17 | 08.12.2010 11:40 |
| Gallery layout Probleme | jim | Android App Entwicklung | 0 | 19.08.2010 10:05 |