2012-04-11 16 views
2

Ich muss eine neue Aktivität starten, sobald der Benutzer auf eine Schaltfläche klickt, die in einem FrameLayout gerendert wird. Es rendert die Schaltfläche, auf die der Benutzer klicken soll, aber natürlich tut es gerade nichts.Starten der Aktivität in FrameLayout

Der Code der Klasse ist der folgende, aber ich kann nicht die startActivity (Absicht) aufrufen.

public class TopBarView extends FrameLayout { 

    private ImageView mLogoImage; 
    private Button mInfoButton; 

    public TopBarView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public TopBarView(Context context) { 
     super(context); 
     init(); 
    } 

    public TopBarView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(); 
    } 

    private void init() { 
     LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.top_bar, null); 

     mLogoImage = (ImageView) view.findViewById(R.id.imageLogo); 
     mInfoButton = (Button) view.findViewById(R.id.infoButton); 

     mInfoButton.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // We load & render the view for the information screen 
//    Intent i = new Intent(); 
//    i.setClass(getContext(), MeerActivity.class); 
//    startActivity(i); 
      } 
     }); 

     addView(view); 
    } 
} 

Vielen Dank im Voraus!

Antwort

4

Wechsel:

public void onClick(View v) { 
// We load & render the view for the information screen 
//    Intent i = new Intent(); 
//    i.setClass(getContext(), MeerActivity.class); 
//    startActivity(i); 
} 

An:

public void onClick(View v) { 
// We load & render the view for the information screen 
    Intent i = new Intent(); 
    i.setClass(v.getContext(), MeerActivity.class); 
    v.getContext().startActivity(i); 
} 

Hinweis: Könnte besser sein, die OnClickListener über die Aktivität zuweisen Sie verwenden die TopBarView so ist ein bisschen mehr wiederverwendbar, wenn Sie sich nur wünschen etwas anderes als MeerActivity als Ziel zu verwenden. Keine große tho.

+0

vielen dank für die hilfe! – noloman

Verwandte Themen