如何解决类强制转换异常 [英] How Can I Solve Class Cast Exception
问题描述
班级代码
Class code
package com.example.vetriselvanv.myapplication;
/**
* Created by vetriselvan.v on 5/16/2015.
*/
public class DeviceDetails extends MainActivity {
private String PhoneNumber;
private String IMEI;
private String BatteryLevel;
public String getPhoneNumber() {
return PhoneNumber;
}
public void setPhoneNumber(String aPhoneNumber) {
PhoneNumber =aPhoneNumber ;
}
public String getIMEI() {
return IMEI;
}
public void setIMEI(String aIMEI) {
IMEI=aIMEI;
}
public String getBatteryLevel()
{
return BatteryLevel;
}
public void setBatteryLevel(String aBatteryLevel)
{
BatteryLevel =aBatteryLevel;
}
}
主要活动
package com.example.vetriselvanv.myapplication;
import android.content.Context;
import android.content.Intent ;
导入android.os.Bundle;
导入android.support.v7.app.ActionBarActivity;
导入android.telephony.TelephonyManager;
导入android.widget.EditText;
导入android.widget.Toast;
公共类MainActivity扩展ActionBarActivity {
字符串字符串,mPhoneNumber;
@Override
protected void onCreate(Bundle savedInstanceState){< br $>
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DeviceDetails device =(DeviceDetails)getApplicationContext (); // 这里
device.setIMEI(string);
device.setBatteryLevel(mPho neNumber);
final String IMEI = device.getIMEI();
final String Phone = device.getPhoneNumber();
Toast.makeText (getApplicationContext(),设备ID+ IMEI +\\\
Mobile编号+电话,Toast.LENGTH_LONG)。show();
意图i =新意图(getBaseContext(),DeviceDetails.class );
startActivity(i);
Vetri();
Toast();
}
public void Vetri()
{
TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
string = tm.getDeviceId();
mPhoneNumber = tm.getLine1Number();
EditText et =(EditText)findViewById(R.id .editText);
EditText ett =(EditText)findViewById(R.id.editText2);
ett.setText(mPhoneNumber);
et.setText(string);
}
清单代码
< manifest xmlns:android =http://schemas.android.com/apk/res/android>
package =com.example.vetriselvanv.myapplication>
< application>
android:name =com.example。 vetriselvanv.myapplication.DeviceDetails
android:allowBackup =true
android:icon =@ mipmap / ic_launcher
android:label =@ string / app_name
android:theme =@ style / AppTheme>
< activity>
android:name =。MainActivity
android:label =@ string / app_name>
< intent-filter>
< action android:name =android.intent.action.MAIN>
< category android:name =android.intent.category.LAUNCHER> < br $> b $ b
< activity android:name =。DeviceDetails&g t;
Main Activity
package com.example.vetriselvanv.myapplication;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.telephony.TelephonyManager;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
String string,mPhoneNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DeviceDetails device=(DeviceDetails)getApplicationContext();//here
device.setIMEI(string);
device.setBatteryLevel(mPhoneNumber);
final String IMEI=device.getIMEI();
final String Phone=device.getPhoneNumber();
Toast.makeText(getApplicationContext(),"Device ID"+IMEI+"\nMobile Number"+Phone, Toast.LENGTH_LONG).show();
Intent i = new Intent(getBaseContext(), DeviceDetails.class);
startActivity(i);
Vetri();
Toast();
}
public void Vetri()
{
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
string = tm.getDeviceId();
mPhoneNumber = tm.getLine1Number();
EditText et=(EditText)findViewById(R.id.editText);
EditText ett=(EditText)findViewById(R.id.editText2);
ett.setText(mPhoneNumber);
et.setText(string);
}
Manifest code
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="com.example.vetriselvanv.myapplication" >
<application>
android:name="com.example.vetriselvanv.myapplication.DeviceDetails"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity>
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN">
<category android:name="android.intent.category.LAUNCHER">
<activity android:name=".DeviceDetails">
推荐答案
getApplicationContext
[ ^ ]返回当前进程的单个全局Application对象的上下文。您不能随意将其转换为其他类类型。
getApplicationContext
[^] returns the context of the single, global Application object of the current process. You cannot randomly cast that to a different class type.
这篇关于如何解决类强制转换异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!