# Suche Name von View Komponente



## Massta (23. Okt 2012)

Hallo,
ich bin dabei, eine Android App zu schreiben und suche den Namen für ein grafisches Element.

http://mobile360.de/assets/Facebook-Android-App.1.jpg

Es geht um das linke Bild im Link, genauer um das Messages "Popup". Weiß jemand wie das genau heißt bzw. wie man es verwendet?


----------



## derSoerrn (23. Okt 2012)

Massta hat gesagt.:


> http://mobile360.de/assets/Facebook-Android-App.1.jpg
> 
> Es geht um das linke Bild im Link, genauer um das Messages "Popup". Weiß jemand wie das genau heißt bzw. wie man es verwendet?



suche das selbe Element 

Danke im voraus.


----------



## schlingel (24. Okt 2012)

Sorry, Leute, das ist auf Basis eines PopupWindows selbst geschrieben. Ist aber ganz einfach selbst zu machen.

Nehmt ein RelativeLayout, das aus so aussieht:


```
-------------- 1. Zeile -----------
zentriertes ImageView mit dem Pfeil rauf
---------------2. Zeile -----------
Überschrift (TextView)
---------------3. Zeile -----------
ListView
-----------------------------------
```

Das packt in ein PopupWindow, ganz normal das Layout stylen und gut ist. Das könnt ihr dann noch mit einer Animation ausstattet, damit das sexy ins Bild rollt oder so, und fertig.


----------



## Massta (25. Okt 2012)

Danke, mal sehen wie es wird


----------



## derSoerrn (25. Nov 2012)

```
package de.soeren.tabwidgetlayout;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager.LayoutParams;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Toast;

public class Rechner extends Fragment implements OnClickListener{
	private final String TAG = "Rechner";
	View vLayout;
	Button bHinzufuegen, bR2, bR3, bMatrizen, bSchliessen;
	PopupWindow puwEins;
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		if (container == null) {
            return null;
        }
		vLayout = (LinearLayout)inflater.inflate(R.layout.rechner, container, false);
		
		
		//Buttons

        bHinzufuegen = (Button)vLayout.findViewById(R.id.bHinzufuegen);

        bHinzufuegen.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(final View v) {
              //aqui tus tareas,,
            	LayoutInflater layoutInflater = (LayoutInflater)getActivity().getBaseContext().
            			getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            	View vPopup = layoutInflater.inflate(R.layout.popup, null);  
                puwEins = new PopupWindow(
                		vPopup, 
                		LayoutParams.WRAP_CONTENT, 
                		LayoutParams.WRAP_CONTENT);

                bR2 = (Button)vPopup.findViewById(R.id.bR2);
                bR3 = (Button)vPopup.findViewById(R.id.bR3);
                bMatrizen = (Button)vPopup.findViewById(R.id.bMatrizen);
                bSchliessen = (Button)vPopup.findViewById(R.id.bSchliessen);
                
                bR2.setOnClickListener(this);
                bR3.setOnClickListener(this);
                bMatrizen.setOnClickListener(this);
                
                bSchliessen.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						puwEins.dismiss();
					}
				});

                puwEins.showAsDropDown(bHinzufuegen, puwEins.getWidth()/2, 0);

            	}

        });
		return vLayout;
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.bHinzufuegen:
			Log.v(TAG, "Button Geklickt");
			puwEins.dismiss();
			break;
		case R.id.bR2:
			Log.v(TAG, "Button Geklickt");
			puwEins.dismiss();
			break;
		case R.id.bR3:
			Log.v(TAG, "Button Geklickt");
			puwEins.dismiss();
			break;
		case R.id.bMatrizen:
			Log.v(TAG, "Button Geklickt");
			puwEins.dismiss();
			break;
		default:
			break;
		}
	}
}
```
Hab es jetzt so geschrieben. Nun ist die Frage, wie ich es hinbekomme, dass der OnClickListener funktioniert. Der erkennt den Klick auf einen Button leider immer nur dann an, wenn so schreibe:

```
bSchliessen.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						puwEins.dismiss();
					}
				});
```

Wie greife ich richtig auf die Buttons zu?


----------



## schlingel (26. Nov 2012)

Was verstehst du unter richtig? Das passt ja eh so.


----------



## derSoerrn (27. Nov 2012)

Neee so wie es da war wurden die Klicks auf den Knopf nicht angenommen. Hab das jetzt so wie in Zeile 55-61 gelöst . Problem ist jetzt nur, dass sich die Knöpfe nicht verändern, so wie sie es sonst machen, also je nach Theme Organe oder so werden wenn sie geklickt werden.

Idee was ich machen kann?


----------



## derSoerrn (27. Nov 2012)

Würde es gehen wenn ich dem PopUp eine Fragment Activity Klasse zuweise? Und wenn ja wie geht das


----------



## schlingel (27. Nov 2012)

> Würde es gehen wenn ich dem PopUp eine Fragment Activity Klasse zuweise?


Wofür und was soll das bringen?



> Problem ist jetzt nur, dass sich die Knöpfe nicht verändern, so wie sie es sonst machen, also je nach Theme Organe oder so werden wenn sie geklickt werden.


Also der Button ändert nicht seine Erscheinung aber der Event wird gefeuert? Mysteriös, wo genau ist denn der Code für das Popup? Ich hab das alles in eine eigene Klasse gepackt und dort funktioniert das wunderbar. Die wird dann nur mit dem Context-Objekt als Parameter aufgerufen und der Rest passiert dann da drinnen.


----------



## derSoerrn (27. Nov 2012)

Kann ich dir mein Projekt hochladen und du guckst es dir selber an? Das ist ein bisschen komplizierter das zu erklären.


----------



## derSoerrn (27. Nov 2012)

Hier ist auf jeden Fall mal mein Projekt:

https://dl.dropbox.com/u/9278982/TabWidgetLayout.zip


----------

