Как запустить Activity из TextView? - PullRequest
1 голос
/ 26 февраля 2012

У меня есть TextView, и я хочу нажать на него, чтобы запустить другое действие.Это возможно?Я попробовал этот (неправильный) код, потому что я действительно не нашел решения:

TextView tv= (TextView)findViewById(R.id.souple);
        tv.setOnClickListener(new View.OnClickListener{
            public void onClick(View v){
                  Intent intent = new Intent(this, OtherActivity.class);
                  startActivity(intent);
            }
     });

ОШИБКА: Syntax error on token(s), misplaced construct(s)

Так что, пожалуйста, есть идея?Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 26 февраля 2012

Вы должны ссылаться на свою текущую деятельность через this в конструкторе Intent. Вы должны изменить его на YourActivity.this, чтобы избежать двусмысленности.

0 голосов
/ 26 февраля 2012

Вы пропустили паратез после View.OnClickListener

0 голосов
/ 26 февраля 2012

Итак, я наконец нашел решение:

public class ServicesPlus extends Activity  {
    TextView t ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.servicesplus);

        t = (TextView) findViewById(R.id.souple);

        t.setOnClickListener(new View.OnClickListener() {

                  public void onClick(View v) {
                      Toast.makeText(ServicesPlus.this, "Test", Toast.LENGTH_SHORT).show();
        }   });

}
}
0 голосов
/ 26 февраля 2012

Внутри OnClickListener «this» - слушатель, а не Activity. Итак, вы захотите создать переменную Context в классе Activity и установить для нее значение, а затем использовать ее в своем слушателе.

Context c = this;

OnClickListener....{

   new Intent(c, OtherActivity.class)
}
...