如何在Android中打开一个新活动

时间:2014-04-08 09:24:06

标签: android android-intent android-activity

我正在开发一个项目,可以在其中创建文件夹以创建待办事项列表。 我创建了两个不同的列表活动,一个用于文件夹,另一个用于待办事项列表。 当我点击要在待办事项列表上重定向的文件夹标题时,我想要。我使用了intent方法但是当我点击一个文件夹时,我被移动到同一个待办事项列表中。如何更改要在待办事项列表上移动,但要作为新的开放?此外,我正在为文件夹标题的每个位置使用if语句,如果我不知道用户将创建多少个文件夹,如果我想知道我将创建多少个文件,该怎么办?

待办事项列表活动:

public class viewTasksActivity extends ListActivity {

private Button addButton;
private AnyNoteManagerApplication app;
private TaskListAdapter adapter;

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


    setUpViews();
    app = (AnyNoteManagerApplication)getApplication();
    adapter = new TaskListAdapter(app.getCurrentTasks(), this);
    setListAdapter(adapter);

}

@Override
protected void onResume(){
    super.onResume();
    adapter.forceReload();

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position, id);
    adapter.toggleTaskCompleteAtPosition(position);

}

private void setUpViews() {
    addButton = (Button)findViewById(R.id.add_task_button);
    addButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        Intent intent = new Intent(viewTasksActivity.this, AddTaskActivity.class);
        startActivity(intent);

        }
    });

}

}

文件夹列表aCtivity

public class MainActivity extends ListActivity {

private Button addButton;
private AnyNoteManagerApplication app;
private FolderListAdapter adapter;

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


    setUpViews();
    app = (AnyNoteManagerApplication)getApplication();
    adapter = new FolderListAdapter(app.getCurrentFolders(), this);
    setListAdapter(adapter);
}

@Override
protected void onResume(){
    super.onResume();
    adapter.forceReload();

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
    if(position == 0) {
        //code specific to first list item    
        Intent myIntent = new Intent(MainActivity.this, viewTasksActivity.class);
        startActivity(myIntent);
    }
    if(position == 1) {
        //code specific to first list item    
        Intent myIntent = new Intent(MainActivity.this, viewTasksActivity.class);
        startActivity(myIntent);
    }


    /*Intent taskList = new Intent(MainActivity.this, viewTasksActivity.class);

    startActivity(taskList);*/
}

private void setUpViews() {
    addButton = (Button)findViewById(R.id.add_folder_button);

    addButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

        Intent intent = new Intent(MainActivity.this, AddFolderActivity.class);

        startActivity(intent);

        }
    });
}

}

提前谢谢大家。

1 个答案:

答案 0 :(得分:0)

那应该开辟新的活动。我认为您在其他活动中的数据没有更新,这就是为什么新的活动似乎没有被打开的原因。您可以这样做以为您的意图添加值:

Bundle bundle = new Bundle();
bundle.putString("key", "some string value");
intent.putExtras(bundle);
startActivity(intent);

然后在您打开的活动中获取您发送的值:

String sent_value = getIntent().getExtras().getString("key");

修改

您可以将所有列表视图值添加到数组中,并在列表onItemClick中,您可以像这样获取您单击的项目:

list_values.get(position);