如何通过单击列表创建新页面?

时间:2014-10-21 21:25:24

标签: android

我是Android编程的新手,想要了解如何创建与点击相关的新页面的语法视图!

public class MainActivity extends ActionBarActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        populateListView(); //First method which fills in my list
        registerClickCallBack(); //Method which reacts when the list is clicked   
    }

    private void registerClickCallBack()
    {
        ListView list = (ListView)findViewById(R.id.listView1);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                Intent intent = new Intent(MainActivity.this,nextActivity.class);
                startActivity(intent);
                nextActivity my = new nextActivity();
            }
        });
    }

    private void populateListView()
    {
        String[] myItems = {"I"," II","III","IV" };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.da_item,myItems);    

        ListView list = (ListView)findViewById(R.id.listView1);
        list.setAdapter(adapter);
    }
}

当我点击列表中的元素时,如何创建新的xml页面? 我该如何编写语法?

修改
我有一些额外的问题。

每个新活动都是用普通班写的吗?那为什么我不能在那里看到onCreate方法呢?

新的Activity XML文件存储在哪里?在布局?我怎么知道哪一个属于谁?

1 个答案:

答案 0 :(得分:0)

如果点击列表中的元素,则会启动新活动:

list.setOnItemClickListener(new AdapterView.OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            Intent intent = new Intent(MainActivity.this,nextActivity.class);
            startActivity(intent);

        }
    });

如果要根据单击的项目打开另一个页面,可以使用onItemClick()提供的id或位置;

然后在新活动的onCreate()方法中使用setContentView来显示新的xml。

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

}

修改

您可以定义这样的活动:

public class NextActivity extends Activity { }

然后,您可以覆盖活动的onCreate方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // What you want to do when the activity is created.

}

您将新的XML文件添加到layouts文件夹中。 XML文件可以由多个活动使用。在活动的onCreate方法中,添加setContentView(R.layout.activity_next);以打开名为activity_next的XML文件。这当然可以是任何名称。

您可能想阅读一些教程。

http://developer.android.com/training/basics/firstapp/starting-activity.html