组合 ListActivity 和 ActionBarActivity

2022-09-02 09:41:43

我目前正在构建至少10个,因此我必须使用库来实现.我已经设置了,但我现在想添加一个,但是这需要扩展我的类,而Java没有多个。我该怎么办?SDKandroid-support-v7-appcompatActionBarActionBarListActivityinheritance

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    getSupportActionBar().setIcon(R.drawable.ic_action_search);
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
   }

 }

答案 1

ListActivity 尚未移植到 AppCompat。可能是因为您应该认为它“已弃用”,而是使用ListFragment。

片段将与 ActionBarActivity 一起使用,只需确保它们是支持库中的片段即可。

通读有关片段的链接。

对于您的用例,我只在 xml 中定义片段。


答案 2

执行此操作的最简单方法是使用 内部的 .我是这样做的:ListFragmentActionBarActivity

public class MyActivity extends ActionBarActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        MyFragment fragment = new MyFragment();
        getSupportFragmentManager().beginTransaction().replace(android.R.id.content, fragment).commit();
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home: {
                finish();
                break;
            }

            default: {
                break;
            }
        }
        return true;
    }

    public static class MyFragment extends ListFragment {

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            ...
        }

        public void onListItemClick(ListView listView, View view, int position, long id) {
            ...
        }
    }
}

这样,您甚至不需要xml,并且效果很好。


推荐