2014-11-25 3 views
0

Я хочу, чтобы добавить кнопку назад в моем андроиде application.For это subactivity я добавил этот кодПерейдите к предыдущей деятельности с задней кнопкой в ​​строке заголовка

setContentView(R.layout.activity_location); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
lv.setOnItemClickListener(new OnItemClickListener() { 

        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
         // getting values from selected ListItem 
         String FC_DATE = ((TextView) view.findViewById(R.id.fc_date)).getText() 
           .toString(); 

         // Starting new intent 
         Intent in = new Intent(getApplicationContext(), 
           ForecastActivity.class); 
         // sending lat/long to next activity 

         in.putExtra(TAG_FC_DATE, FC_DATE); 
         in.putExtra(TAG_LAT, LAT); 
         in.putExtra(TAG_LONG, LONGITUDE); 
         // starting new activity and expecting some response back 
         startActivityForResult(in, 100); 
        } 
       }); 

С помощью этого кода им возможности увидеть кнопку назад в строке заголовка. но когда я добавил backpressed метод, он не будет возвращен к предыдущей деятельности ... Plz помочь мне ...

@Override 
     public void onBackPressed() 
      { 
      this.startActivity(new Intent(LocationActivity.this,AndroidGPSTrackingActivity.class)); 

       return; 
      } 

ответ

0

Я думаю, что onBackPressed называется кнопкой самого телефона.

С ActionBar вы должны использовать этот приемник

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case putYourIdHere: 
     startActivity(new Intent(LocationActivity.this,AndroidGPSTrackingActivity.class)); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Спасибо за ваш ответ. Но он показывает мне ошибку, которая: Дублируйте метод onOptionsItemSelected (MenuItem) в типе LocationActivity.I отредактировал мой код в моем вопросе. –

+0

Где вы положили onOptionItemSeleccted? – Cloud57

+0

Я добавил его для переполнения меню ... –

0

Используйте onOptionsItemSelected способ поймать вверх кнопки: метод

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    int id = item.getItemId(); 
    if (id == android.R.id.home) 
    { 
     // This ID represents the Home or Up button. In the case of this 
     // activity, the Up button is shown.   
     finish(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

Я уже назвал этот метод для меню переполнения в моем коде..so как я могу его переопределить? –

+0

Если вы уже перезаписали этот метод, не можете ли вы просто добавить if (id == android.R.id.home)? – Sven

0

1.В OnCreate(), добавьте

 getActionBar().setDisplayShowHomeEnabled(true); 
     getActionBar().setHomeAsUpIndicator(R.drawable.ic_launcher); //custom app icon 
     getActionBar().setDisplayHomeAsUpEnabled(true); 

2.Override onOptionsItemSelected (элемент MenuItem)

 int id = item.getItemId(); 
     switch(id){ 
     case R.id.home: 
      finish(); 
      return true; 

     //handle other actions 
     case R.id.action_settings: 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 

3 следующего атрибут манифеста Android: parentActivityName = «логический родитель деятельности/имя деятельности будет запущен» в вашем SubActivity

<activity 
     android:name=".SubActivity" 
     android:label="SubActivity" 
     android:parentActivityName="com.example.actionbardemo.MainActivity" 
     > 

    </activity> 
Смежные вопросы