2012-02-18 28 views
5

我在Android中很新手。我需要一些帮助和你的建议。
我从去年一月份开始在Android工作,在这里我遇到了一些麻烦。我仍在为Android 2.3开发应用程序。很简单的应用程序。 我已阅读关于操作栏的内容,并向图书馆推荐了如greendroid,sherlock actionbar和最后一个Johan Nilson操作栏。我仍然有困难将其集成到我的应用程序。所以我尝试创建自己的操作栏,麻烦来了一个接一个。其中之一:即使列表视图向下滚动,也很难将动作栏与我的ListView组合在一起,仍然保持在屏幕的顶部。在操作栏的最后布局产生成的ListView头:在ListActivity中添加动作栏

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

和按钮&的ImageButton不工作的单击事件..

//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();   
    } 
}); 

怎样的方式,如果我想操作栏仍在列表视图布局顶部?为什么点击按钮和图像按钮不工作?

回答

0

为什么要将动作栏添加到ListView标题?如果你这样做,操作栏将始终与ListView一起滚动。将操作栏添加到ListActivity的布局。喜欢的东西:

<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> 

然后在onCreate()设置活动的内容视图:

@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

如果你能设法包括操作栏库,比如福尔摩斯之一,这将是简单得多:

private class YourListActivity extends SherlockListActivity { 

}