2013-04-17 2 views
0

Я рассмотрел каждый пример переключения между действиями, и я всегда получаю тот же результат. Приложение бомбит.Открытие нового действия при нажатии кнопки

Насколько я могу судить, если у вас есть класс java, который заполняет содержимое макета, то для того, чтобы переключиться на другой макет, вы должны «связать» с java-файлом, который, в свою очередь, откроет setContentView (R.layout.whatever);

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

из класса Java: -

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

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.activity_main); 

    Button next = (Button) findViewById(R.id.goesnews); 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), ac2.class); 
      startActivityForResult(myIntent, 0); 
     } 

    }); 

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); 




} 

В Java файл (ac2)

 public class ac2 extends Activity { 

    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main2); 

    }} 

Может кто-нибудь помочь здесь?

+2

что ошибка журнал. объявляете ли вы активность в манифесте? – stinepike

+0

use startActivity (myIntent) ;, вы можете (должны) использовать getApplicationContext(); вместо view.getContext(); также убедитесь, что вы заявили о своей активности в androidmanifest.xml, например

+0

logcat журналы ошибок были бы полезны – drunkenRabbit

ответ

0

Попытка удалить ноль из этой строки:

startActivityForResult(myIntent, 0); 

, как это и изменить его просто:

startActivity(myIntent); 

и изменить эту строку:

Intent myIntent = new Intent(view.getContext(), ac2.class); 

Для этого:

Intent myIntent = new Intent(firstActivityName.this, ac2.class); 

потому что вы получаете здесь контекст кнопки, а не активности.

0

попробовать этот способ

добавить OnClick функцию кнопке в XML-файле как этот

<Button 
     android:id="@+id/previous" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="click" 
     android:onClick="move" /> 

и в Уре Java файл сделать функцию перемещения, как этот

public void move(View v) 
{ 
     Intent myIntent = new Intent(yourclass.this, ac2.class); 
     startActivityForResult(myIntent,0); 
} 
+0

Мой журнал ошибок выглядит следующим образом: - –

+0

VSK - при попытке вашего метода я не могу сохранить и скомпилировать приложение, поскольку получаю сообщение об ошибке - метод startActivityForResult (Intent, int) в типе Activity не применимо для аргументов (Intent) –

+0

Извините, что я забыл поставить атрибут 0. см. – Senthil

0

решение было простым и основано на ответе VSK (спасибо) с небольшой настройкой.

ImageButton требуется: - требуется

<Button 
    android:id="@+id/previous" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="click" 
    android:onClick="move" /> 

Java: -

public void move(View v) 
    { 
    Intent myIntent = new Intent(yourclass.this, ac2.class); 
    startActivityForResult(myIntent, 0); 
    } 

VSK - обратите внимание на атрибут '0' из startActivityForResult

Спасибо всем