0
点赞
收藏
分享

微信扫一扫

Android Interface 接口


Android 接口的简单例子。


1. 程序结构:

Android Interface 接口_java

2. 代码:

MainActivity.java

package com.interfacetest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

MyView myView = (MyView) findViewById(R.id.myView);
myView.setMyCallback(new MyCallback() {

@Override
public void run(String content) {
// TODO Auto-generated method stub
System.out.println("=== content:" + content + " ===");
}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

 

Mycallback.java

package com.interfacetest;

public interface MyCallback {
public void run(String content);
}

 

MyView.java

package com.interfacetest;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class MyView extends TextView {

private MyCallback myCallback;

public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
new myThread().start();
}

/** 调用这个函数来初始化接口,就像Button的setOnClickListener */
public void setMyCallback(MyCallback myCallback) {
this.myCallback = myCallback;
}

/** 对调用接口函数操作的封装 */
public void callMycallback(String content) {
myCallback.run(content);
}

class myThread extends Thread {
private int count = -1;

@Override
public void run() {
// TODO Auto-generated method stub
super.run();

while (true) {

try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

count++;
/** 调用接口函数 */
callMycallback(count + "");
}
}

}

}

 




 

 

举报

相关推荐

0 条评论