2015-09-03 5 views
-2

Я работаю над программированием приложения для Android. Но как только я хочу проверить свое приложение в своем симуляторе, я получаю мгновенную ошибку.Студия Android: Произошла ошибка

Это мой код.

public class MainActivity extends Activity implements View.OnClickListener { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_main); 

    Button toPech = (Button)findViewById(R.id.toPech); 
    toPech.setOnClickListener(this); 
    ImageButton toInfo = (ImageButton)findViewById(R.id.toInfo); 
    toInfo.setOnClickListener(this); 
    //this button is not in the same layoutactivity as the other 2. 
    ImageButton backPech = (ImageButton)findViewById(R.id.backPech); 
    backPech.setOnClickListener(this); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
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(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onClick(View v) { 
    switch(v.getId()) { 
     case R.id.toPech: 
      startActivity(new Intent(getApplicationContext(), LocationActivity.class)); 
      break; 
     case R.id.toInfo: 
      startActivity(new Intent(getApplicationContext(), InfoActivity.class)); 
      break; 
     case R.id.backPech: 
      startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
      break; 
    } 
} 

Я хотел бы знать, что не так, чтобы я мог.

+1

Вы можете дать логарифм? – DevUt

ответ

0

С вашей комментировал линии:

// эта кнопка не в том же layoutactivity, как и другие 2.

Я думаю, что у вас есть NullPointerException.

Хотя Button«backPech» не в activity_main.xml, поэтому вызов findViewById(R.id.backPech); возвратит null объект (backPech будет нулевым).

И вызов setOnClickListener(this); в объект null вызовет исключение NullPointerException.

+0

Ах спасибо. но можете ли вы дать мне пример решения? – Perra

+0

Просто объявите кнопку с id = "backPech" в вашем * activity_main.xml * (как вы делали в другой деятельности xml) – Rami

Смежные вопросы