在一个类中扩展ArrayAdapter和Activity?

时间:2012-09-23 19:15:56

标签: android class

我有一个小但非常不实际的问题:)。我正在为CustomArrayAdapter扩展ArrayAdapter类,但我现在也想在这个类中启动一个新的Activity。问题是,我想扩展它,但它不接受它。谷歌还表示,它在Android中是不可能的,我必须扩展我的应用程序。唯一的问题是,我如何调用该方法呢? Object.startActivity ??

谢谢!

3 个答案:

答案 0 :(得分:3)

我认为您要实现的是Multiple Inheritance,而Java语言不支持此功能。

你可以试试这样的事情。

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_activity_layout);
        .....
        MyCustomAdapter adapter = new MyCustomAdapter();
        .....
    }

    class MyCustomAdapter extends ArrayAdapter {
        // your adapter implementation.
    }
}

希望这会有所帮助..

答案 1 :(得分:0)

您不应该从ArrayAdapter启动Activity。 你想什么时候开始呢? 您可以通过在正在使用的GroupView上设置ItemClickListener来处理列表项的单击。

ListView view = (ListView)findViewById(R.id.listview);
view.setAdapter(new CustomArrayAdapter(getApplicationContext(), array));
view.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    startActivity(intent);

}
};

答案 2 :(得分:0)

我知道,我试过这样做:

CustomArrayAdapter myAdapter= new CustomArrayAdapter(this, questions);
gv.setAdapter(myAdapter);

gv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            myDbHelper.close();
            Intent i = new Intent("com.bgdroid.quizapp.ANSWER");
            startActivityForResult(i,0);
            // TODO Auto-generated method stub

            }
});

问题在于:视图的信息来自数据库条目。我无法调用v.getId()并在下一个具有此id的Activity中获取数据库信息,因为有许多项目(60,所以id为1到60)但每个级别显示。 (id 1-20是1级,id 20-40是2级,...)

通过输入,我现在意识到我可以获取id,将其传递给下一个活动并执行如下:v.getItem()+(itemsPerLevel *(currentLevel - 1))。

你们认为这是最好的解决方案吗?对不起,很难解释:)