Java 以编程方式添加TextView

Java 以编程方式添加TextView,java,android,textview,parse-platform,Java,Android,Textview,Parse Platform,我是编程新手,我不确定我是否正确理解如何以编程方式添加TextView。我发现很多人都在这样做,但他们在上下文中使用这个。这通常我能理解,但就我而言,这是行不通的 我正在通过parse.com检索对象,并尝试在.findInBackground()中设置字符串。这是我的密码: private void Retrieve2() { final ParseObject Fighters = new ParseObject("FightersDB"); ParseQu

我是编程新手,我不确定我是否正确理解如何以编程方式添加
TextView
。我发现很多人都在这样做,但他们在上下文中使用
这个
。这通常我能理解,但就我而言,这是行不通的

我正在通过parse.com检索
对象
,并尝试在
.findInBackground()
中设置
字符串
。这是我的密码:

private void Retrieve2() {

        final ParseObject Fighters = new ParseObject("FightersDB");
        ParseQuery query = new ParseQuery("FightersDB");
        query.whereEqualTo("Name", "The First Guy");
        query.findInBackground(new FindCallback(){
            @Override
            public void done(List<ParseObject> objects, ParseException e) {

                  if (e == null) {                   
                        Log.d("Status", "Retrieved suuccessfully"); 
                        String name, record, age;
                     name = Fighters.getString("Name");
                     age = Fighters.getString("Age");
                     record = Fighters.getString("Record");
                     set(name, record, age);     

                    } else {
                        Log.d("Status", "Error: " + e.getMessage());
                    }

            }

            private void set(String name, String record, String age) {

                RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);

                TextView tv = new TextView(this); //<---- RIGHT HERE IS MY PROBLEM
                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int)LayoutParams.WRAP_CONTENT, (int)LayoutParams.WRAP_CONTENT);
                params.leftMargin=0;
                params.topMargin=80;
                tv.setPadding(10, 0, 0, 0);
                tv.setText("" + name + "" + record + "" + age);
                tv.setTextSize((float) 20);
                tv.setLayoutParams(params);
                rl.addView(tv);

            }           
        });
private void Retrieve2(){
最终ParseObject=新的ParseObject(“FightersDB”);
ParseQuery查询=新的ParseQuery(“FightersDB”);
whereEqualTo(“名字”,“第一个人”);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e==null){
Log.d(“状态”,“已成功检索”);
字符串名称、记录、年龄;
name=Fighters.getString(“name”);
age=Fighters.getString(“age”);
record=Fighters.getString(“record”);
设置(姓名、记录、年龄);
}否则{
Log.d(“状态”,“错误:+e.getMessage());
}
}
私有无效集(字符串名称、字符串记录、字符串期限){
RelativeLayout rl=(RelativeLayout)findViewById(R.id.rl);

TextView tv=new TextView(this);//尝试使用
ActivityClass

TextView tv = new TextView(ActivityClass.this);

尝试使用ActivityClass。此
,例如

TextView tv = new TextView(ActivityClass.this);
引用类的当前对象。通常,您会看到许多人在活动类中以编程方式创建视图时使用此选项:

TextView tv = new TextView(this);
这是指Activity.this,大多数视图都需要上下文。而Activity是从上下文扩展而来的,所以您可以将Activity作为上下文传入

您的解决方案:
当前您没有显示它所在的类,如果这是一个活动类,请使用它,如果这是活动类的内部类,请使用ActivityClass。如果这不是一个活动类,则必须在方法(或构造函数/字段)的参数中获取上下文

更新因为您说过它是活动类的内部类,所以您可以使用ActivityClass。这将作为上下文传递:

TextView(ActivityClass.this);
引用类的当前对象。通常,您会看到许多人在活动类中以编程方式创建视图时使用此选项:

TextView tv = new TextView(this);
这是指Activity.this,大多数视图都需要上下文。而Activity是从上下文扩展而来的,所以您可以将Activity作为上下文传入

您的解决方案:
当前您没有显示它所在的类,如果这是一个活动类,请使用它,如果这是活动类的内部类,请使用ActivityClass。如果这不是一个活动类,则必须在方法(或构造函数/字段)的参数中获取上下文

更新因为您说过它是活动类的内部类,所以您可以使用ActivityClass。这将作为上下文传递:

TextView(ActivityClass.this);

FindCallback
extends
Activity/View
?否它只扩展
Object
您需要向该类传递
Activity
引用,这样您就可以添加
TextView
dynamicalydoes
FindCallback
扩展
Activity/View
?否它只扩展
对象
您需要传递
AActivity
引用该类,以便您可以添加
TextView
dynamically该类位于我的Activity类中。因此我只需使用
TextView tv=new TextView(ActivityClass.this)是的,使用ActivityClass.this来引用你的outter类。太好了,明白了。现在我只需要找出为什么它会显示
null
。谢谢你的帮助。
TextView(OutterActivity.this)
在生成之前给了我一个错误;
OutterActivity无法解析为类型
。我应该使用
ActivityClass。这个
OutterActivity。这个
ActivityClass。这个,我只是说OutterActivity供您参考。我不知道它会混淆。这个类在我的Activity类中。所以我只使用它
TextView tv=new TextView(ActivityClass.this);
?是的,使用ActivityClass.this引用你的outter类。太好了,明白了。现在我只需要找出它为什么显示
null
。谢谢你的帮助。
TextView(OutterActivity.this)
在生成之前给了我一个错误;
OutterActivity无法解析为类型
。我应该使用
ActivityClass吗。这个
OutterActivity。这个
ActivityClass。这个,我只是说OutterActivity供您参考。我不知道这会很混乱。