Ho una vista personalizzata con 2 layout di lineat: la prima è l'intestazione della vista e la seconda è la vista dettagli.come posso attivare l'evento Onclick a livello di programmazione in Android?
Nella vista personalizzata, OnClickListener dell'intestazione Linearlayout è già definito: quando si attiva, collassa/espande la seconda linearlayout.
Quello che voglio fare è aggiungere ulteriori funzionalità all'evento OnClickListener della mia intestazione (es .: collasso/espandi il secondo layout e mostri un Toast).
Non riesco a modificare il codice sorgente della visualizzazione personalizzata. Ho provato a impostare un nuovo OnClickListener ma nasconde l'evento iniziale (comprimi/espandi).
Come devo implementarlo?
Il codice sorgente di My Custom Vista:
public class ExpandoLayout extends ViewGroup
{
/* some declarations */
private Linearlayout header;
private linearlayout footer;
/* some code */
@override
protected void onFinishInflate() {
header= new LinearLayout(context);
header.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
toggleExpand();
}
});
}
}
quello che voglio fare è aggiungere del codice al già definito evento OnClickListener nella mia attività. Qualcosa del genere:
public class myActivity extends Activity {
private Linearlayout myCustomView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rsdetail);
myCustomView= (MyCustomView) findViewById(R.id.expanded);
myCustomView.getChildAt(0).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v instanceof LinearLayout)
{
v.performClick();
Toast.makeText(getActivity(), "ExpandoOnClickListener", 2000).show();
}
}
});
}
Si prega di fornire il codice ....... risposta –
vedere @ di waqaslam. – Halil