如何使用 Navigateup 从 Third Activity 返回到 Second Activity 使用 Intent

How to Use Navigateup Back From Thrird Activity to Second Activity using Intent

我正在开发一个 android 应用程序。在这个应用程序中,我有 3 Activity 一个作为 Title Activity 另一个作为 Subtitle Activity另一个是 detail Activity

现在我想从一个activity(副标题Activity) 向上导航 ]to parent activty(Title Activity) 通过使用下面的代码我执行该操作

副标题Activity:

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.subcategory_activity);
    actionBar=getSupportActionBar();
listView2= (ListView) findViewById(R.id.listView2);
Intent intent= getIntent();
final String selectedData = intent.getStringExtra("selectedItem");
actionBar.setTitle(selectedData);
dbHelper = new SqlLiteDbHelper(this);
try {
    dbHelper.openDataBase();
} catch (SQLException e) {
    e.printStackTrace();
}

sqLiteDatabase=dbHelper.getReadableDatabase();
cursor=dbHelper.getsubcategory(sqLiteDatabase,selectedData);
String[] from = new String[] { dbHelper.SUBCATEGORY };
int[] to = new int[] {R.id.subcategory };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.subcategory_row,cursor,from,to);
adapter.notifyDataSetChanged();
listView2.setAdapter(adapter);
listView2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Cursor cursor = (Cursor) (listView2.getItemAtPosition(position));
        String selectedItem = cursor.getString(0);
        Intent intent = new Intent(SubcategoryActivity.this, DetailActivity.class);
        intent.putExtra("selectedItem", selectedItem);
        startActivity(intent);
    }
});


        public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();

                if (id==android.R.id.home)
                {
                    NavUtils.navigateUpFromSameTask(this);
                }
                return super.onOptionsItemSelected(item);
            }
        }

Manifest.xml

<activity
            android:name=".SubcategoryActivity"
            android:label="@string/title_activity_subcategory" >
            <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"></meta-data>
        </activity>

现在我不知道如何从我的细节 Activity 移动到 Subtile Activity 我们如何才能做到这一点??

详情Activity:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail_activity);
    actionBar=getSupportActionBar();
detailtext= (TextView) findViewById(R.id.detail);
imageView= (ImageView) findViewById(R.id.images);

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);


Intent intent= getIntent();
final String selectedData = intent.getStringExtra("selectedItem");
actionBar.setTitle(selectedData);
dbHelper = new SqlLiteDbHelper(this);
try {
    dbHelper.openDataBase();
} catch (SQLException e) {
    e.printStackTrace();
}

sqLiteDatabase = dbHelper.getReadableDatabase();
cursor=dbHelper.getdetails(sqLiteDatabase, selectedData);
if(cursor.moveToFirst())
{
    detailtext.setText(cursor.getString(0));
}
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id==android.R.id.home)
    {

        onBackPressed();

    }

在您的 DetailsActivity 代码中执行类似的操作:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

有关 Tasks and Back Stack(尤其是 Using Intent Flags 部分)的更多信息,请阅读此处:http://developer.android.com/guide/components/tasks-and-back-stack.html

使用

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(View.OnClickListener);

并像这样放置点击监听器:

new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               YourActivity.this.onBackPressed();
            }