gpt4 book ai didi

java - 如何为按钮分配方法?

转载 作者:行者123 更新时间:2023-11-30 11:57:26 25 4
gpt4 key购买 nike

这个问题看起来很愚蠢,但我花了很多时间试图成功地解决它。问题是,如果我尝试在普通 Java 中使用的任何解决方案,Eclipse IDE 会抛出各种不同的错误。另一件事是,在实现接口(interface)后我收到一个错误,Eclipse 将我的类更改为抽象类。所以源码是:

public class analyzer extends Activity {
TextView dateAndTimeLabel;
private Button closeButton;
private int signalDBm = 0;

public class GetParams extends PhoneStateListener
{

@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
super.onSignalStrengthsChanged(signalStrength);
signalDBm = signalStrength.getGsmSignalStrength();
}
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);

TextView tv = (TextView)findViewById(R.id.text);
tv.setText("Greetings, My Lord");
EditText fld=(EditText)findViewById(R.id.field);
fld.setText("Nothing here at the moment");


new GetParams();

Button btn=(Button)findViewById(R.id.start);
btn.setOnClickListener(this);

btn=(Button)findViewById(R.id.stop);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

}
});

/**updateLabel();*/
/**Zakritie programmi*/
this.closeButton = (Button)this.findViewById(R.id.end);
this.closeButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
/**Prosmotr loga*/

Button btn_log=(Button)findViewById(R.id.viewlog);
btn_log.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView tv = (TextView)findViewById(R.id.text);
tv.setText("U pressed the button, now you will die!");
EditText fld=(EditText)findViewById(R.id.field);
fld.setText("Power: " + signalDBm +" dBm\n" + "BER:... \n" + "Coordinates: ... \n");
};
});
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start:
Toast.makeText(this, "GSM signal strength is " + signalDBm, Toast.LENGTH_SHORT).show();
break;
}
}

};

所以有一个类 GetParams 及其方法 signalStrength.getGsmSignalStrength() 我想使用。我可以添加的另一件事是 SignalStrength() 类没有公共(public)构造函数,这是我可以访问方法 getGsmSignalStrength() 的唯一方法。如果有人能帮助我,我将非常高兴,因为在我找到解决方案之前,我所有的工作都停止了。

最佳答案

尝试以下操作。只要信号强度发生变化,PhoneStateListener 就会将信号强度写入局部变量 signalDBM。并且您的 Activity 实现了 OnClickListener 的方法 onClick()。在这里,您读取了 signalDBM 的值并将其传递给 toast。

package de.test;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class analyzer extends Activity implements OnClickListener{
TextView dateAndTimeLabel;
private Button closeButton;
private int signalDBM = 0;

public class GetParams extends PhoneStateListener
{

@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
super.onSignalStrengthsChanged(signalStrength);
signalDBM = signalStrength.getGsmSignalStrength();
}
}

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);

GetParams listener = new GetParams();
TelephonyManager TelManager = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);
TelManager.listen(listener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

Button btn=(Button)findViewById(R.id.start);
btn.setOnClickListener(this);
}


@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start:
Toast.makeText(this, "GSM signal strength is " + this.signalDBM , Toast.LENGTH_SHORT).show();
break;
}
}
}

Manifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".analyzer"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
</manifest>

关于java - 如何为按钮分配方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com