Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onClickListener无法解析为变量_Android_Fragment_Imagebutton - Fatal编程技术网

Android onClickListener无法解析为变量

Android onClickListener无法解析为变量,android,fragment,imagebutton,Android,Fragment,Imagebutton,我试图对所有四个ImageButton实现相同的onClickListener。但它显示了不解析onclick侦听器的错误 package com.yogeshbalan.myrootguide; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.o

我试图对所有四个ImageButton实现相同的onClickListener。但它显示了不解析onclick侦听器的错误

package com.yogeshbalan.myrootguide;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

import com.yogeshbalan.myrootguide.fragment_1.Android_Rooting;
import com.yogeshbalan.myrootguide.fragment_1.How;
import com.yogeshbalan.myrootguide.fragment_1.What;
import com.yogeshbalan.myrootguide.fragment_1.Why;

public class MainActivity extends Activity {

Fragment fragment;
public ImageButton android_rooting,android_what,android_why,android_how;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final ImageButton android_rooting = (ImageButton)     findViewById(R.id.imageButton_androidrooting);
    final ImageButton android_what = (ImageButton) findViewById(R.id.imageButton_what);
    final ImageButton android_why = (ImageButton) findViewById(R.id.imageButton_why);
    final ImageButton android_how = (ImageButton) findViewById(R.id.imageButton_how);

    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    Android_Rooting myFragment = new Android_Rooting();
    ft.add(R.id.myFragment, myFragment);
    ft.commit();


    android_rooting.setOnClickListener(onClickListener);
    android_what.setOnClickListener(onClickListener);
    android_why.setOnClickListener(onClickListener);
    android_how.setOnClickListener(onClickListener);

    ImageButton.OnClickListener onClickListener = new OnClickListener(){

        Fragment newFragment;
        @Override
        public void onClick(View v) {

            if (v.getId()==R.id.imageButton_androidrooting) {

                newFragment = new Android_Rooting();

            } else if(v.getId()==R.id.imageButton_what){

                newFragment = new What();

            }
            else if(v.getId()==R.id.imageButton_why){

                newFragment = new Why();

            }
            else if(v.getId()==R.id.imageButton_how){

                newFragment = new How();

            }

      }

    };

    FragmentTransaction Transaction = getFragmentManager().beginTransaction();
    Transaction.replace(R.id.myFragment, myFragment);
    Transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    Transaction.commit();

 }
我想在我的主要活动中添加片段。 但这并不是我所期望的。请帮助我…或者建议另一种方法。。。 我正在学习本教程

尝试放置

android_rooting.setOnClickListener(onClickListener);
android_what.setOnClickListener(onClickListener);
android_why.setOnClickListener(onClickListener);
android_how.setOnClickListener(onClickListener);
低于

ImageButton.OnClickListener onClickListener = new OnClickListener(){
    ...
};

希望这有助于

从onCreate创建一个像

View.OnClickListener onClickListener= new View.OnClickListener() {
    public void onClick(View v) {
      // it was the 1st button
    }
  };
然后在
oncreate
method中绑定该方法或单击如下事件

android_rooting.setOnClickListener(onClickListener);
android_what.setOnClickListener(onClickListener);
android_why.setOnClickListener(onClickListener);
android_how.setOnClickListener(onClickListener);

您也可以从XML中执行此操作,将
android:onClick=“onClickListener”
添加到要绑定
onClickListener
event.Listener的所有图像按钮中。

始终在使用前放置变量声明。按照@VictorKoenders的建议,将变量声明移动到使用它的代码上方:

ImageButton.OnClickListener onClickListener = new OnClickListener(){
    ........
};

android_rooting.setOnClickListener(onClickListener);
android_what.setOnClickListener(onClickListener);
android_why.setOnClickListener(onClickListener);
android_how.setOnClickListener(onClickListener);

请附上您的错误日志输出。我已经按照您所说的@VictorKoenders完成了操作,但现在当我单击它们各自的按钮时,片段并没有改变。