如何解决类强制转换异常 [英] How Can I Solve Class Cast Exception

查看:82
本文介绍了如何解决类强制转换异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

班级代码

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆