2016-04-01 3 views
0

У меня есть кнопка, созданная с помощью моей основной (активности). Я установил метод onClick() для определения действий кнопки. Я хочу отобразить другое изображение при нажатии кнопки. В вызове android: onclick ("") используется строковый параметр. Как я могу ссылаться на другое представление? У меня есть свои файлы активности и содержимого xml, и Java-файл правильно собран и протестирован на моем sdk, чтобы работать. Но как я могу назвать вид нового объекта? Я попытался вызвать getApplication(), но он сбой приложения. Буду признателен за любую помощь.Переключение между видами приложений на Android

Вот что я пробовал:

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    Toast.makeText(getApplicationContext(), "I'm clicked!", Toast.LENGTH_SHORT).show(); 
    AppActivity app = new AppActivity(); 
    getApplicationContext().stopService(new Intent()); 
    app.getApplicationContext().startActivity(new Intent()); 
} 
+0

Необходимо отправить соответствующий код. – wvdz

+0

@wvdz, я отредактировал сообщение, чтобы включить то, как я установил метод onClick. –

ответ

1

Если вы хотите изменить деятельность с использованием это:

Intent myIntent = new Intent(this, AvitivityName.class); 
startActivity(myIntent); 

Если вы хотите изменить просмотров, используйте:

setContentView(R.layout.myXML); 

в вашей onCreate.

Если вы хотите передать данные между различными видами деятельности, использовать putExtra и getExtra:

Intent i=new Intent(context,SendMessage.class); 
i.putExtra("Hi", user.getUserAccountId()+""); 
context.startActivity(i); 

и получить:

Intent i= getIntent(); 
i.getExtra("Hi"); 

Позвольте мне знать, если это помогло.

+0

Работал неплохо. Вы, ребята, слишком искусны, я держу шляпу! –

+0

@aburimegregory Эй, если это сработало, нажмите на галочку под похожими кнопками. Таким образом, вы можете ответить на мой вопрос. Рад, что я помог! –

1

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

private Context ctx; 
public Class CurrentActivity extends Activity{ 
    // let's save it in your onCreate method 
    onCreate(Bundle savedBundleState){ 
     ctx = this; 
    } 

    // now on your onClick method 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Toast.makeText(ctx, "I'm clicked!", Toast.LENGTH_SHORT).show(); 
     Intent intent = new Intent(ctx, AppActivity.class); 
     ctx.startActivity(intent); 
    } 

} 
+0

Спасибо, @Refaat. Я сделал именно это, и он упал. Я попытаюсь реализовать его как contentViews и посмотреть, что я получу. –

+0

, если он рушится, вам лучше добавить свой стек в вопрос, чтобы нам было легко помочь вам –

+1

Спасибо, Refaat. Я благодарен. –

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