Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中访问简单类的成员_Java_Android - Fatal编程技术网

Java 在Android中访问简单类的成员

Java 在Android中访问简单类的成员,java,android,Java,Android,我有一个简单的Java类,它在另一个包中扩展了View,我正在使用这个类创建一个自定义视图。我想将它用作另一个类的XML中的视图,这是一个活动 我的自定义视图需要来自该类的一些数据,因此我创建了一个Pt类的对象,它扩展了活动。对象已创建,但当我使用该对象访问扩展活动的类的成员时,它不会显示任何成员。我做错了什么,还是有更好的方法 这是我的密码。我已经在评论中表达了我的期望 public class PlotView extends View {//class to make a custom v

我有一个简单的Java类,它在另一个包中扩展了
View
,我正在使用这个类创建一个自定义视图。我想将它用作另一个类的XML中的
视图
,这是一个
活动

我的自定义
视图
需要来自该类的一些数据,因此我创建了一个
Pt
类的对象,它扩展了
活动
。对象已创建,但当我使用该对象访问扩展
活动的类的成员时,它不会显示任何成员。我做错了什么,还是有更好的方法

这是我的密码。我已经在评论中表达了我的期望

public class PlotView extends View {//class to make a custom view

    Plot_View obj_plot = new Plot_View();
    obj_plot.//  here i am expecting it to show the members of that Plot_View class which is extending Activity 

    class Pt{
        float x, y;
        Pt(float _x, float _y){
            x = _x;
            y = _y;
        }
    }

    Pt[] myPath = { new Pt(100, 100), new Pt(200, 200),    new Pt(200, 500),
                    new Pt(400, 500),    new Pt(400, 200) };

    public PlotView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public PlotView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(Color.BLUE);
        paint.setStrokeWidth(3);
        paint.setStyle(Paint.Style.STROKE);
        Path path = new Path();
        path.moveTo(myPath[0].x, myPath[0].y);

        for (int i = 1; i < myPath.length; i++){
            path.lineTo(myPath[i].x, myPath[i].y);
        }
        canvas.drawPath(path, paint);
    }
}//
public class PlotView扩展视图{//class以创建自定义视图
Plot_View obj_Plot=新的Plot_View();
obj\u plot//这里我希望它显示正在扩展活动的plot\u View类的成员
Pt类{
浮动x,y;
Pt(浮动x,浮动y){
x=x;
y=_y;
}
}
Pt[]myPath={new Pt(100100),new Pt(200200),new Pt(200500),
新Pt(400500),新Pt(400200)};
公共绘图视图(上下文、属性集属性){
超级(上下文,attrs);
//TODO自动生成的构造函数存根
}
公共绘图视图(上下文){
超级(上下文);
//TODO自动生成的构造函数存根
}
@凌驾
受保护的void onDraw(画布){
//TODO自动生成的方法存根
super.onDraw(帆布);
油漆=新油漆();
油漆。设置颜色(颜色。蓝色);
油漆。设置行程宽度(3);
绘制.设置样式(绘制.样式.笔划);
路径路径=新路径();
moveTo(myPath[0].x,myPath[0].y);
for(int i=1;i
这是我的Plot_View活动。我想访问在此活动中定义的这些ArrayList

     public class Plot_View extends Activity implements OnClickListener {


        public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.plotview);

      calculationForPlot();

    findViewById(R.id.btn_measure).setOnClickListener(this);



     initMirrorMatrix();

     drawMatrix();
}

 private void calculationForPlot(){
     ArrayList<String> al_edit_A_ft = new ArrayList<String>();
     ArrayList<String> al_edit_A_inch=new ArrayList<String>();
     ArrayList<String>al_edit_B_ft=new ArrayList<String>(); 
     ArrayList<String>al_edit_B_inch= new ArrayList<String>();
    float x=0;
     AndroidOpenDbHelper androidOpenDbHelperObj = new AndroidOpenDbHelper(this);
        SQLiteDatabase sqliteDatabase = androidOpenDbHelperObj.getReadableDatabase();
        String q="SELECT * FROM ab_measurement WHERE job_id=" +"\""+Settings.jobid +"\"";


   Cursor  cursor = sqliteDatabase.rawQuery(q,null);

        if (cursor.moveToNext()) {
            System.out.println(cursor.getCount());
            m=Integer.parseInt(cursor.getString(4));

            do {
                try{

                float a = 0,b = 0;



                 a=(float) Double.parseDouble(cursor.getString(6));
                 String number =String.valueOf(a);
                 System.out.println("aaa ggg"+number);
                 String int_part =number.substring(0,number.indexOf("."));
                 String float_part=number.substring(number.lastIndexOf(".")+1,number.length());
                 System.out.println("aaa values"+int_part);
                 System.out.println("aaa values"+float_part);


                  al_edit_A_ft.add(int_part);
                  al_edit_A_inch.add(float_part);

                     b= (float) Double.parseDouble(cursor.getString(7));
                     String number_b =String.valueOf(b);
                     System.out.println("aaa ggg"+number_b);
                     String int_part_b =number_b.substring(0,number_b.indexOf("."));
                     String float_part_b=number_b.substring(number_b.lastIndexOf(".")+1,number_b.length());
                     System.out.println("aaa values"+int_part_b);
                     System.out.println("aaa values"+float_part_b);
                     al_edit_B_ft.add(int_part_b);
                     al_edit_B_inch.add(float_part_b);

                     x= (float) Double.parseDouble(cursor.getString(3));
                     String ft_base =String.valueOf(x);
                     System.out.println("aaa ggg"+ft_base);
                     String int_part_ft =ft_base.substring(0,ft_base.indexOf("."));
                     String float_part_inch=ft_base.substring(ft_base.lastIndexOf(".")+1,ft_base.length());
                     System.out.println("aaa values"+int_part_ft);
                     System.out.println("aaa values"+float_part_inch);


                }
                catch (Exception e) {

                }

            } while (cursor.moveToNext());
public class Plot\u视图扩展活动实现OnClickListener{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.plotview);
plot()的计算;
findviewbyd(R.id.btn_measure).setOnClickListener(this);
初始化镜像矩阵();
drawMatrix();
}
私有空间计算ForPlot(){
ArrayList al_edit_A_ft=新建ArrayList();
ArrayList al_edit_A_inch=新建ArrayList();
ArrayList_edit_B_ft=新建ArrayList();
ArrayListal_edit_B_inch=新建ArrayList();
浮动x=0;
AndroidPendbhelper AndroidPendbhelperbj=新的AndroidPendbhelper(本);
SQLITEDABASE SQLITEDABASE=androidOpenDbHelperObj.getReadableDatabase();
String q=“从ab\U测量中选择*,其中作业id=“+”\”“+设置。作业id+”\”;
Cursor Cursor=sqliteDatabase.rawQuery(q,null);
if(cursor.moveToNext()){
System.out.println(cursor.getCount());
m=Integer.parseInt(cursor.getString(4));
做{
试一试{
浮点数a=0,b=0;
a=(float)Double.parseDouble(cursor.getString(6));
字符串编号=字符串。valueOf(a);
系统输出打印项次(“aaa ggg”+编号);
String int_part=number.substring(0,number.indexOf(“.”);
字符串float_part=number.substring(number.lastIndexOf(“.”+1,number.length());
System.out.println(“aaa值”+整数部分);
系统输出打印项次(“aaa值”+浮点部分);
所有编辑添加(内部部分);
添加(浮动部分);
b=(float)Double.parseDouble(cursor.getString(7));
字符串编号_b=字符串.valueOf(b);
系统输出打印项次(“aaa ggg”+编号b);
字符串int_part_b=数字子字符串(0,数字索引(“.”);
字符串float_part_b=number_b.子字符串(number_b.lastIndexOf(“.”+1,number_b.length());
System.out.println(“aaa值”+int\u部分b);
System.out.println(“aaa值”+浮动部分);
所有编辑添加(内部部分);
添加(浮动部分);
x=(float)Double.parseDouble(cursor.getString(3));
字符串ft_base=String.valueOf(x);
系统输出打印项次(“aaa ggg”+ft_基地);
字符串int_part_ft=ft_base.substring(0,ft_base.indexOf(“.”);
字符串float_part_inch=ft_base.substring(ft_base.lastIndexOf(“.”+1,ft_base.length());
System.out.println(“aaa值”+int\u part\u ft);
系统输出打印项次(“aaa值”+浮动部分英寸);
}
捕获(例外e){
}
}while(cursor.moveToNext());
试试这个

在Java类中创建一个对象引用变量,该变量为您的
活动
类型,并使用传递给它的
上下文在构造函数中初始化它。

活动类:

public class MyActivity extends Activity {
TextView myView ;
protected void onCreate(android.os.Bundle savedInstanceState) {
    myView = (TextView)findViewById(R.id.myView);
        Points myPoints = new Points(this);
        myPoints.displayMsg("MY NAME IS VIVEK");
}  
}
    private class Points {

    public MyActivity mcontext;

    ////---------- a constructor with the Context of your activity

    public Points(MyActivity context){
        mcontext = context;
    }

    public void displayMsg( final String msg){
        context.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                mcontext.myView.setText(msg);    
            }
        });
    }
}
Java类:

public class MyActivity extends Activity {
TextView myView ;
protected void onCreate(android.os.Bundle savedInstanceState) {
    myView = (TextView)findViewById(R.id.myView);
        Points myPoints = new Points(this);
        myPoints.displayMsg("MY NAME IS VIVEK");
}  
}
    private class Points {

    public MyActivity mcontext;

    ////---------- a constructor with the Context of your activity

    public Points(MyActivity context){
        mcontext = context;
    }

    public void displayMsg( final String msg){
        context.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                mcontext.myView.setText(msg);    
            }
        });
    }
}
试试这个

在Java类中创建一个对象引用变量,该变量为您的
活动
类型,并使用传递给它的
上下文在构造函数中初始化它。

活动类:

public class MyActivity extends Activity {
TextView myView ;
protected void onCreate(android.os.Bundle savedInstanceState) {
    myView = (TextView)findViewById(R.id.myView);
        Points myPoints = new Points(this);
        myPoints.displayMsg("MY NAME IS VIVEK");
}  
}
    private class Points {

    public MyActivity mcontext;

    ////---------- a constructor with the Context of your activity

    public Points(MyActivity context){
        mcontext = context;
    }

    public void displayMsg( final String msg){
        context.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                mcontext.myView.setText(msg);    
            }
        });
    }
}
Java类:

public class MyActivity extends Activity {
TextView myView ;
protected void onCreate(android.os.Bundle savedInstanceState) {
    myView = (TextView)findViewById(R.id.myView);
        Points myPoints = new Points(this);
        myPoints.displayMsg("MY NAME IS VIVEK");
}  
}
    private class Points {

    public MyActivity mcontext;

    ////---------- a constructor with the Context of your activity

    public Points(MyActivity context){
        mcontext = context;
    }

    public void displayMsg( final String msg){
        context.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                mcontext.myView.setText(msg);    
            }
        });
    }
}

从您注释的代码行不完整的方式来看,我假设您使用的是IDE的自动完成功能

我的第一个建议是将名称
Plot\u View
更改为
PlotActivity
。这将有助于您在返回此项目时避免混淆