私は、LinearLayoutを拡張する1つのクラスabcと1つのアクティビティxyzを作成した小さなAndroidアプリケーションを開発しています。私のクラスabcの中で、私は次の方法で1つのインターフェースを定義します
public class abc extends LinearLayout {
private OnclickxitemListener listener1;
public interface OnclickxitemListener
{
public String nil = "nilkash";
public void onclickxtitem();
}
public void setOnxitemSelectedListener(OnclickxitemListener listener)
{
this.listener1 = listener;
Log.i("#######################################", "inside set listener "+listener1);
}
public abc(Context context)
{
super(context);
}
@SuppressWarnings("deprecation")
public void initialiseImages()
{
create custome linear view here
ImageView image_View = (ImageView) parentLayout.findViewById(0);
image_View.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String n = listener1.nil;
Log.i("#################################", "inside click"+n);
listener1.onclickxitem();
}
});
}
}
今、私は次のように私の活動からこのインターフェースを使用することを試みました。
public class xyz extends Activity implements abc.OnclickxitemListener{
CustomviewActivity cubes;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
abc widget = new abc(this);
widget.setOnxitemSelectedListener(this);
cubes.initialiseImages();
}
@Override
public void onclickxitem() {
}
}
ここで問題となるのは、クラスで画像クリックリスナーを実行すると、変数値( "string nilkash")にアクセスできますが、メソッドにアクセスできないことですlistener1.onclickxitem();
。それが私にnullポインタ例外を与えることをエースしようとしたとき。
私が何か悪いことをしているのかどうか。この問題を解決する方法。助けが必要です...ありがとう...