Android: проблема при включении макета - PullRequest
1 голос
/ 10 декабря 2010

Я включил одно представление заголовка для каждого представления в моем приложении. А также может реализовать нажатие кнопки и т.д. в этот заголовок с помощью ответа:

Включить в Android с помощью Java

Но мое требование заключается в нажатии кнопки, оно должно начать другое действие. когда я нажимаю кнопку, она внезапно останавливается. Но другие действия, такие как Toast, button.setText () и т. Д., Работают нормально при нажатии кнопки.

Home.class

 TextView txtMarket = (TextView) findViewById(R.id.txtMarket);
 TextView txtNews = (TextView) findViewById(R.id.txtNews);
 ImageButton imgLogout=(ImageButton)findViewById(R.id.imgLogout);
 ImageButton imgDashBoard=(ImageButton)findViewById(R.id.imgDashBoard);
 Header objHeader=new Header(imgLogout,txtMarket,txtNews,imgDashBoard,getBaseContext());
 objHeader.init();

Header.class

 //in Header class
 public Header(ImageButton btnLogin,TextView txtMarket,TextView txtNews,ImageButton imgDashBoard,Context context) 
 {     
          this.btnLogin = btnLogin; 
     this.txtMarket = txtMarket;     
     this.txtNews = txtNews; 
     this.imgDashBoard = imgDashBoard; 
     this.context=context;
 }
 public void init() 
 {  
      btnLogin.setOnClickListener(new View.OnClickListener()
 {              
           public void onClick(View view)
      {
            Intent loginIntent=new Intent();                               Toast.makeText(context, "u clicked the button", 1).show();
       loginIntent.setClass(view.getContext(),login.class);
       startActivity(loginIntent);
           }
});
}

Пожалуйста, помогите мне, друзья ....

Отредактировано

Когда я определяю как:

Intent loginIntent = new Intent (Home.this, login.class);

тогда выдает ошибку:

"Ни один включающий экземпляр типа loginHome не доступен в области видимости"

И если я даю как:

Когда я определяю как:

Intent loginIntent = new Intent (Header.this, login.class);

тогда он поймал NullPointerException

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Вы редактировали manifest.xml, вставив новое действие? Как:

<activity android:name=".NewActivityName" />
0 голосов
/ 10 декабря 2010

Попробуйте использовать контекстную переменную из вашего конструктора:

loginIntent.setClass(Header.this.context,login.class);
...