public class MyServer {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(555);
Socket s = ss.accept();
DataInputStream dis = new DataInputStream(s.getInputStream());
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
String str = dis.readUTF();
System.out.print("客户端已连接");
dos.writeUTF("Server:"+str);
dos.flush();
dis.close();
s.close();
ss.close();
}
}
public class MainActivity extends Activity {
public static Button mybutton = null;//发送Socket请求
public static TextView mytext = null;//显示服务器返回的值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mybutton = (Button)findViewById(R.id.button);
mytext = (TextView)findViewById(R.id.text);
mybutton.setOnClickListener(new mybuttonlistener());
}
//按钮的点击事件
class mybuttonlistener implements OnClickListener{
PrintStream out = null;
BufferedReader buf = null;
Socket s = null;
public void onClick(View v) {
try {
s = new Socket("10.20.90.3", 555);//创建一个IP地址为:10.20.90.3,端口号为:555的Socket对象
DataOutputStream dos = new DataOutputStream(s.getOutputStream());//获得一个输出流
DataInputStream dis = new DataInputStream(s.getInputStream());//获得一个输入流
dos.writeUTF("河南理工大学ACM协会");//发送到服务器的请求值
String str = dis.readUTF();//获取服务器返回的参数
mytext.setText(str);
dos.flush();
dos.close();
dis.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone">
</ListView>
</RelativeLayout>
public class MainActivity extends Activity {
private ListView listview ;//list容器
private List<String> data = new ArrayList<String>();//暂存数据的容器
private ArrayAdapter<String> adapter;
private final int number = 30;//每页的数据量
private final int maxpage = 5;//数据的页数
private int ItemCount;//显示的记录数
private int nextpage;
private boolean flag = true; //表示加载数据是否完成
private View tipView;//页脚view
@SuppressLint("InflateParams")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_main);
listview = (ListView)findViewById(R.id.listview);
listview.setOnScrollListener(new scrollListener());//滑动事件监听
listview.setOnItemClickListener(new onItemClickListener());//点击事件监听
tipView = getLayoutInflater().inflate(R.layout.listview_tip, null);//获得加载更多的页脚
/*
* 第一次加载
*/
data.addAll(new DataScroll().getDate(0, 30));//获得第一页需要显示的数据
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.listview_item, R.id.textview, data);//将数据与对应的数据显示页面配对
/*
* 添加页脚必须依据下面的格式
*/
listview.addFooterView(tipView);//添加页脚(在加载数据之前)
listview.setAdapter(adapter);//必须在此句之前加载页脚
listview.removeFooterView(tipView);//删除页脚显示
}
public final class scrollListener implements OnScrollListener{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
int lastItemId = listview.getLastVisiblePosition();//获得屏幕Item的最后一条记录的ID
if((lastItemId+1)==totalItemCount){//判断是否已经拖动到页未
if(totalItemCount > 0){//判断是否加载的数据是最后一页数据
int currentpage = totalItemCount%number==0 ? totalItemCount/number : totalItemCount/number+1;
nextpage = currentpage + 1;
if(nextpage<=maxpage && flag){
flag = false;
ItemCount = totalItemCount;
listview.addFooterView(tipView);//显示加载更多页脚
new Thread(new Runnable() {
@Override
public void run() {
//模拟网络加载数据
try {
Thread.sleep(3000);//模拟网络加载
} catch (InterruptedException e) {
e.printStackTrace();
}
DataScroll datascroll = new DataScroll();
List<String> result = datascroll.getDate(nextpage, number);
Hand.sendMessage(Hand.obtainMessage(100, result));
}
}).start();
}
}
}
if(0==firstVisibleItem){
if(firstVisibleItem < 0){
Toast.makeText(MainActivity.this, "刷新", Toast.LENGTH_SHORT).show();
}
}
}
}
//返回到主线程执行
Handler Hand = new Handler(){
@SuppressWarnings("unchecked")
@SuppressLint("HandlerLeak")
public void handleMessage(Message msg) {
data.addAll((List<String>) msg.obj);
adapter.notifyDataSetChanged();//告诉ListView数据已经发生改变,要求更新ListView界面
if(listview.getFooterViewsCount()>0){
listview.removeFooterView(tipView);
}
flag = true;
}
};
//List中各Item的点击事件
class onItemClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(getApplicationContext(), position+" "+id, Toast.LENGTH_SHORT).show();
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#aa00ff" tools:context="${relativePackage}.${activityClass}" >
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:textSize="18sp"
android:textColor="#aa0000"
android:singleLine="true"
/>
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textview" />
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="18sp"
android:textColor="#000000"
android:singleLine="true"
android:text="数据加载中..." />
</LinearLayout>
/*
* 模拟获得分页数据
*/
public class DataScroll {
public List<String> getDate(int nextpage, int maxResult){
int offset = 0;
if(nextpage!=0){
offset = (nextpage-2)*maxResult;
}
List<String > list = new ArrayList<String>();
for(int i=0; i<maxResult; i++){
list.add("List数据分批加载"+ ++offset);
}
return list;
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<LinearLayout
android:id="@+id/linearone"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spinner下拉列表"
android:textSize="25dip"
android:layout_gravity="center_horizontal"
/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/arr"
android:spinnerMode="dropdown"
/>
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/brr"
android:spinnerMode="dialog"
/>
<Spinner
android:id="@+id/spinner3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Spinner
android:id="@+id/spinner4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
/>
<Spinner
android:id="@+id/spinner5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
/>
<Button
android:id="@+id/buttonone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="下一页"
/>
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">下拉列表</string>
<string name="hello_world">Hello world!</string>
<string-array name="arr">
<item>默认效果</item>
<item>河南</item>
<item>北京</item>
<item>上海</item>
</string-array>
<string-array name="brr">
<item>弹出效果</item>
<item>河南</item>
<item>北京</item>
<item>上海</item>
</string-array>
</resources>
public class Activityone extends Activity {
private Spinner spin1;//默认Spinner,在按钮下方显示
private Spinner spin2;//默认Spinner,通过Dialog的形式为用户展示
private Spinner spin3;//自定义Spinner,在按钮下方显示
private Spinner spin4;//自定义Spinner,通过Dialog的形式为用户展示
private Spinner spin5;//自定义Spinner,通过Dialog的形式为用户展示
private Button buttonone;
private String [] array = new String [] {
"数组引用",
"代表",
"组长",
"小妹"
};
private String [] arrayadapt = new String [] {
"arrayadapt引用",
"代表",
"组长",
"小妹"
};
private List<String> list = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
list.add("list引用");
list.add("代表");
list.add("组长");
list.add("小妹");
buttonone=(Button)findViewById(R.id.buttonone);
spin1=(Spinner)findViewById(R.id.spinner1);
spin2=(Spinner)findViewById(R.id.spinner2);
spin3=(Spinner)findViewById(R.id.spinner3);
spin4=(Spinner)findViewById(R.id.spinner4);
spin5=(Spinner)findViewById(R.id.spinner5);
ArrayAdapter<String> arrayadapter =
new ArrayAdapter<String>(Activityone.this, android.R.layout.simple_spinner_item, arrayadapt);
spin5.setAdapter(arrayadapter);
BaseAdapter baseadapterone = new baseadapterone();
spin3.setAdapter(baseadapterone);
BaseAdapter baseadaptertwo = new baseadaptertwo();
spin4.setAdapter(baseadaptertwo);
//设置点击结果选择提示
spin4.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(Activityone.this, list.get(position), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
buttonone.setOnClickListener(new mybuttonistener());
}
private class baseadapterone extends BaseAdapter{
@Override
public int getCount() {
return array.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textview = new TextView(Activityone.this);
textview.setText(array[position]);
return textview;
}
}
private class baseadaptertwo extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textview = new TextView(Activityone.this);
textview.setText(list.get(position));
return textview;
}
}
class mybuttonistener implements OnClickListener{
@Override
public void onClick(View v) {
Intent intent = new Intent(Activityone.this,Activitytwo.class);
Activityone.this.startActivity(intent);
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有