有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用来自其他类Java Android onClick的方法?

有没有办法在buttononClick中调用另一个class的方法

我需要在onClick中调用myClass.myMethod(),但在主界面中说不

我的onClick按钮 安卓:onClick="textToVoice.listenVoice"

我的课,没有结束:

public class TextToVoice extends MainActivity{
public void listenVoice(){
    this.makeVoice();

}
public void downloadVoice(){


}
private void makeVoice(){
    Toast toast = Toast.makeText(getApplicationContext(), this.makeUrl(),
            Toast.LENGTH_SHORT);
    toast.show();
}
private String makeUrl(){
    Editable phstr = super.textVoice.getText();
    String textUrl = phstr.toString();
    if (textUrl.contains(" ")){
        textUrl = textUrl.replace(" ", "+");
    }
    return textUrl;
}
}

主要问题是:

public class MainActivity extends ActionBarActivity {
protected EditText textVoice;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_main);
    this.textVoice =
            (EditText) findViewById(R.id.textVoice);
    TextToVoice textToVoice = new TextToVoice();
}
......

共 (3) 个答案

  1. # 1 楼答案

    将另一个类中的方法声明为public和static,然后可以将其用作 你们班。方法()

  2. # 2 楼答案

    class MainActivity extends Activity {
    protected EditText textVoice;
    Button button;
    TextToVoice textToVoice;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ln_dialog);
        textVoice = (EditText) findViewById(R.id.textVoice);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textToVoice = new TextToVoice(MainActivity.this,textVoice.getText().toString());
                textToVoice.listenVoice();
            }
        });
    
    }
    
    
    public class TextToVoice extends MainActivity {
        String textString;
        Context context;
    
        public TextToVoice(Context c ,String s) {
            textString = s;
            context = c;
        }
    
        public void listenVoice() {
            makeVoice();
        }
    
        public void downloadVoice() {
        }
    
        public void makeVoice() {
            Toast.makeText(context, makeUrl(), Toast.LENGTH_SHORT).show();
        }
    
        private String makeUrl() {
    
            if (textString.contains(" ")) {
                textString = textString.replace(" ", "+");
            }
            return textString;
        }
    }
    
  3. # 3 楼答案

    为什么你的TextToVoice类会扩展主要活动。Android按钮需要实现视图。OnClickListener接口。尝试实现上述接口,而不是扩展MainActivity。将类的上下文传递给构造函数并使用指定的方法。看看能不能用