2013-04-07 3 views
0

Я хочу создать кнопку, которая закрывает текущую активность. Как кнопка «возврат». Вот фрагменты кода я попытался:Кнопка возврата - недоступна

Вот полный .java:

public class OtherApps extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.other_apps); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.otherappsmenu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()) { 
     case R.id.previous: 
      finish(); 
      break; 
     case R.id.home: 
      Context context = getApplicationContext(); 
      CharSequence text = "Activitys are not closed!"; 
      int duration = Toast.LENGTH_LONG; 
      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
      Intent intent = new Intent(this, MainActivity.class); 
      this.startActivity(intent); 
      break; 
     case R.id.exit: 
      finish(); 
      System.exit(0); 
     case R.id.help: 
      String url = "http://www.google.de/"; 
      Intent i = new Intent(Intent.ACTION_VIEW); 
      i.setData(Uri.parse(url)); 
      startActivity(i); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
     return true; 

     final Button OtherApps = (Button)findViewById(R.id.previousbutton); 
     OtherApps.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 
     return true; 
    } 
} 

Но Eclipse, говорит, что «первая линия недостижим». Кто-нибудь знает, в чем ошибка?

Спасибо за помощь!

+0

«первой линии» - какая линия точно? – Simon

+0

* Который * код недостижим? –

+0

Первая строка каждого кода. «Кнопка Button = (кнопка) findViewById (R.id.previousbutton);" и "final Button OtherApps = (кнопка) findViewById (R.id.previousbutton);" – YouDeveloper

ответ

1

Этот код должен работать (предпочтительным является первый пример).

Ошибка, с которой вы получаете звуки, как будто у вас есть return -statement в любом месте этого метода. Перед тем, как вы вставили код. Ищите это, он должен исправить ошибку.

EDIT:

public class OtherApps extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.other_apps); 

     final Button OtherApps = (Button) findViewById(R.id.previousbutton); 
     OtherApps.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      finish(); 
      } 
     }); 
} 
+0

Вы имеете в виду return true; ? У меня их 3. – YouDeveloper

+1

Как прокомментировала Дина, отправьте код перед этими строками. Проблема будет в одном из этих 'return true'! – chuky

+0

Я не могу ответить на свой вопрос, но вот код в Документах Google: https: //docs.google.com/document/d/1GhDZQBze0NnktYz4DmdtPaPDCLS3PKdkaFkzngT_v_E/edit? Pli = 1 – YouDeveloper

2

Если «первая линия» недостижима, то это более важно знать, что код до этих двух версий. Возможно, у вас есть заявление return или состояние, которое всегда false.

В этом случае код для прикрепления слушателей по щелчку никогда не будет достигнут.

p.s.

У вас есть две строки wehre возвращения из метода, что означает, что следующий код никогда не выполняется:

switch(item.getItemId()) { 
    ... 
    default: // here, return if none of the values above matched 
    return super.onOptionsItemSelected(item); 
} 
return true; // here, return always 

// conclusion: this gets never executed: Eclipse says "line not reachable" 
final Button OtherApps = (Button ... 
Смежные вопросы