私はAndroid開発に非常に慣れていません。ですから、この繰り返しの質問をお許しください。私はこれについて多くの解決策を試しましたが、どれもうまく機能していないようです...それらはすべてエミュレーターと電話でクラッシュします。
私はアプリに取り組んでおり、自分の GPS 位置情報を取得して、'big' という TextView を位置の値に設定したいだけです。
コードはこちら。(私は自分のコードに import ステートメントとすべてを持っています..私はそれらをコピーしませんでした
GPSActivity //開始するアクティビティ。テキストビュー R.id.big は存在します
public class GPSActivity extends Activity{
private LocationManager manager = null;
private MyLocationListener listener;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listener = new MyLocationListener(textView);
textView = (TextView) findViewById(R.id.big);
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
listener = new MyLocationListener(textView);
manager.requestLocationUpdates(LocationManager
.GPS_PROVIDER, 5000, 10,listener);
}
}
TextView を変更する独自の LocationListener を実装しました...本当にこれが許可されているかどうかわかりません....
public class MyLocationListener implements LocationListener
{
TextView textView;
public MyLocationListener(TextView textView)
{
this.textView = textView;
}
@Override
public void onLocationChanged(Location location) {
this.textView.setText(location.toString());
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
}
最後に私のマニフェストファイル。必要な権限を含めるようにしました。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mytestapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<activity
android:name="com.mytestapp.GPSActivity"
android:permission="ACCESS_FINE_LOCATION"
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>
</manifest>
GPSActivity
を呼び出すと問題が発生しますrequestLocationUpdates()
。この行をコードに残すと、アプリがクラッシュします。コメントアウトすると、TextView の 'big' が期待どおりに表示されます。
LocationListener
編集:他の多くの人がSOで行うのを見たように、内部クラスとしてを作成しようとしました...そして同じ結果が得られました(アプリのクラッシュ)