android java的类中类怎么调用外部类的方法?
publicclassMainActivityextendsActionBarActivity{@OverrideprotectedvoidonCreate(Bundle...
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null)
{
getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
}
public String strlink(String str1,String str2) //需要调用的方法
{
return str1+str2;
}
public static class PlaceholderFragment extends Fragment
{
public PlaceholderFragment()
{
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container,false);
final Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new Button.OnClickListener(
{
//在这里调用外部的strlink()该怎么做呢?
});
}
}
} 展开
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null)
{
getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
}
public String strlink(String str1,String str2) //需要调用的方法
{
return str1+str2;
}
public static class PlaceholderFragment extends Fragment
{
public PlaceholderFragment()
{
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container,false);
final Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new Button.OnClickListener(
{
//在这里调用外部的strlink()该怎么做呢?
});
}
}
} 展开
2个回答
展开全部
成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问:
class Circle {//外部类
private double radius = 0;
public Circle(double radius) {
this.radius = radius;
getDrawInstance().drawSahpe(); //必须先创建成员内部类的对象,再进行访问
}
private Draw getDrawInstance() {//初始化内部类,以便可以访问
return new Draw();
}
class Draw { //内部类
public void drawSahpe() {
System.out.println(radius); //外部类的private成员
}
}
}
展开全部
内部类调用外部类 创建外部类对象 在调用 而 外部类调用内部类不需要创建对象可直接调用
MainActivity ma=new MainActivity();
ma.strlink(str1,str2);
MainActivity ma=new MainActivity();
ma.strlink(str1,str2);
更多追问追答
追问
大概原理有点眉目。但是如何获取外部类的this指针呢?
如果能获取外部类的this指针就很好办了。
追答
MainActivity .this.strlink(str1,str2); 试一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询