2012-02-18 3 views
5

Jestem bardzo początkujący w systemie Android. Potrzebuję pomocy i sugestii tutaj.
Pracuję w systemie Android od ostatniego stycznia, mam tu trochę problemów. Nadal pracuję nad aplikacją na Androida 2.3. Bardzo bardzo prosta aplikacja. Przeczytałem o pasku akcji i proponuję bibliotekę, taką jak greendroid, sherlock actionbar i ostatni pasek akcji Johan Nilson. Nadal mam trudności z integracją z moją aplikacją. Więc próbuję stworzyć własny pasek akcji i kłopoty pojawiły się jeden po drugim. Jeden z nich: trudno połączyć pasek akcji z moim ListView, aby nadal pozostawać na górze ekranu, nawet w widoku listy przewiń w dół. W końcu układ pasku akcji generować w nagłówku ListView:Dodawanie paska akcji w ListActivity

View header = getLayoutInflater().inflate(R.layout.header, null); 
ListView listView = getListView(); 
listView.addHeaderView(header); 

i przycisk & ImageButton nie działa na kliknij zdarzenie ..

//try action button in actionbar 
Menu1 = (Button) this.findViewById(id.button1); 
Menu1.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View v) 
    { 
     Toast.makeText(List_direktoriJson.this, "action bar..", Toast.LENGTH_LONG).show();   
    } 
}); 

jaki sposób, jeśli chcę pasek działań nadal na wierzchu w układzie widoku listy? I dlaczego przycisk i przycisk obrazu nie działają po kliknięciu?

Odpowiedz

0

Dlaczego dodajesz pasek akcji do nagłówka ListView? Jeśli to zrobisz, pasek akcji będzie zawsze przewijany z ListView. Dodaj pasek akcji do układu swojej ListActivity. Coś jak:

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 

    <include 
     android:id="@+id/action_bar" 
     layout="@layout/header" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- May be some other views --> 

</merge> 

Następnie w onCreate() zestaw widok treść zadania:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.layout_of_the_activity); 
    setListAdapter(...); 

    // get action bar view 
    View header = findViewById(R.id.action_bar); 

    // and then set click listeners. Note that findViewById called on header, not on this 
    Menu1 = (Button) header.findViewById(R.id.button1); 
    Menu1.setOnClickListener(...); 
} 

Article about <merge> and <include> tags.

2

Jeśli uda ci się to jedną z bibliotek Action Bar, takich jak Sherlock, to będzie dużo prostsze:

private class YourListActivity extends SherlockListActivity { 

}