利用Bmob写一个失物招领的功能

关键字:校园APP,失物招领

利用Bmob更新APP:https://blog.csdn.net/qq_36332133/article/details/82143926

Bmob的配置就不多说了

效果图:

在Bmob后台创建SWZL表:

CONTENT是内容,adress是地址,title是标题,time是时间

createTime是发布的系统时间

SWZL.JAVA

import cn.bmob.v3.BmobObject;

public class SWZL extends BmobObject {
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    private String title;//标题

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    private String content;//内容


    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    private String time;

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    private String adress;

}

发布信息:

package com.example.luhongcheng;

import android.annotation.TargetApi;
import android.app.Activity;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import com.example.luhongcheng.Bmob.SWZL;

import java.io.File;

import cn.bmob.v3.Bmob;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UploadFileListener;

public class send extends Activity {

    EditText title,content,time,adress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.send);
        Bmob.initialize(this, "69d2a14bfc11//你的APP key");
        title = (EditText) findViewById(R.id.title);
        content = (EditText) findViewById(R.id.content);
        time = (EditText) findViewById(R.id.time);
        adress = (EditText) findViewById(R.id.adress);



    }


    public void post (View view){
        String mtitle  = title.getText().toString();
        String mcontent = content.getText().toString();
        String mtime = time.getText().toString();
        String madress = adress.getText().toString();
        if (mtitle == null){
            Toast.makeText(send.this,"请填写完整信息", Toast.LENGTH_SHORT).show();
        } else{
            SWZL p2= new SWZL();
            p2.setTitle(mtitle);
            p2.setContent(mcontent);
            p2.setTime(mtime);
            p2.setAdress(madress);
            p2.save(new SaveListener<String>() {
                @Override
                public void done(String objectId, BmobException e) {
                    if(e==null){
                        Toast.makeText(send.this,"添加数据成功,返回objectId为:"+objectId,Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(send.this,"创建数据失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }



}

利用listview显示信息,查询信息的代码:

由于我是在fragment里面写的,和activity略有不同

package com.example.luhongcheng;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.example.luhongcheng.Bmob.SWZL;

import java.util.ArrayList;
import java.util.List;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;

@SuppressLint("ValidFragment")
public class ThreeFragment extends Fragment {
    private String context;
    public ThreeFragment(String context){
        this.context = context;
    }
    ListView listView;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.c_fragment,container,false);
        return view;
    }

    @Override
    public void onActivityCreated( Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        listView = (ListView) getActivity().findViewById(R.id.listView);
        Bmob.initialize(getActivity(), "69d2a14bfc11//APP key");
        get();
        Button send = (Button) getActivity().findViewById(R.id.bt1);
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent1=new Intent(getActivity(),send.class);
                startActivity(intent1);
            }
        });

        Button get = (Button) getActivity().findViewById(R.id.bt2);
        get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                get();
            }
        });

    }


    public void get(){
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                BmobQuery<SWZL> query = new BmobQuery<SWZL>();
                query.findObjects(new FindListener<SWZL>(){
                    @Override
                    public void done(List<SWZL> list, BmobException e) {
                        List<SWZL> lists = new ArrayList<>();
                        if (list != null) {
                            //System.out.println("查询成功"+list.get(0).getTitle()+list.get(0).getContent()+list.get(0).getTime()+list.get(0).getAdress()+list.get(0).getIconUrl());
                            final String[] title  =  new String[list.size()];
                            final String[] content  =  new String[list.size()];
                            final String[] time  =  new String[list.size()];
                            final String[] adress  =  new String[list.size()];
                            for(int i = 0;i<list.size();i++){
                                title[i] = list.get(i).getTitle();
                                content[i] = list.get(i).getContent();
                                time[i] = list.get(i).getTime();
                                adress[i] = list.get(i).getAdress();

                            }


                            class MyAdapter extends BaseAdapter {
                                private Context context ;
                                public MyAdapter(Context context){
                                    this.context = context;
                                }

                                @Override
                                public int getCount() {
                                    return title.length;
                                }

                                @Override
                                public Object getItem(int position) {
                                    return title[position];
                                }

                                @Override
                                public long getItemId(int position) {
                                    return position;
                                }

                                @Override
                                public View getView(int position, View convertView, ViewGroup parent) {
                                    ViewHolder viewHolder;
                                    if (convertView == null){
                                        LayoutInflater inflater = LayoutInflater.from(context);
                                        convertView = inflater.inflate(R.layout.swzl_item_layout, null);//实例化一个布局文件
                                        viewHolder = new ViewHolder();
                                        viewHolder.tv_title = (TextView)convertView.findViewById(R.id.tv_title);
                                        viewHolder.tv_content = (TextView)convertView.findViewById(R.id.tv_content);
                                        viewHolder.tv_time = (TextView)convertView.findViewById(R.id.tv_time);
                                        viewHolder.tv_adress = (TextView)convertView.findViewById(R.id.tv_adress);

                                        convertView.setTag(viewHolder);
                                    }else {
                                        viewHolder = (ViewHolder) convertView.getTag();
                                    }
                                    viewHolder.tv_title.setText(title[position]);
                                    viewHolder.tv_content.setText(content[position]);
                                    viewHolder.tv_time.setText(time[position]);
                                    viewHolder.tv_adress.setText(adress[position]);

                                    return convertView;
                                }
                                class ViewHolder{
                                    TextView tv_title;
                                    TextView tv_content;
                                    TextView tv_time;
                                    TextView tv_adress;
                                }
                            }
                            listView.setAdapter(new MyAdapter(getActivity()));
                        }


                    }
                });
            }
        }); //声明一个子线程
        thread.start();


    }



}



布局:main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".item9"
    tools:layout_editor_absoluteY="25dp">

    <LinearLayout
        android:id="@+id/top_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/red_300"
        android:gravity="center"
        android:minHeight="45dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/top_sign"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="12dp"
            android:clickable="true"
            android:text="失物招领信息"
            android:textColor="@android:color/white"
            android:textSize="15dp"
            android:textStyle="bold" />

    </LinearLayout>


    <ListView
        android:layout_below="@+id/top_title"
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#ffffff"
        android:dividerHeight="7sp">
    </ListView>



    <Button
        android:id="@+id/bt1"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center"
        android:text="发布信息"
        android:onClick="send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/dot_normal"
        tools:ignore="OnClick" />

    <Button
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/bt1"
        android:layout_alignParentEnd="true"
        android:layout_gravity="center"
        android:background="@drawable/dot_normal"
        android:text="刷   新" />







</RelativeLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:id="@+id/iv"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:src="@drawable/ic_launcher"/>

    <LinearLayout
        android:layout_toRightOf="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:gravity="center"
            android:text="标题" />
        <View
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_width="wrap_content"
            android:layout_height="0.5dp"
            android:background="@android:color/black"/>
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_marginLeft="25dp"
                android:layout_marginRight="25dp"
                android:id="@+id/tv_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="12dp"
                android:maxHeight="200dp"
                android:text="内容" />

        </ScrollView>

        <View
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="@android:color/black"/>
        <TextView
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:id="@+id/tv_time"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="12dp"
            android:text="时间" />
        <View
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="@android:color/black"/>
        <TextView
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:id="@+id/tv_adress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="12dp"
            android:text="地点" />
        <View
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="@android:color/black"/>
    </LinearLayout>

</RelativeLayout>

源码就不放了,很简单的,自己参考下就好了

这个功能还是有很多缺陷的,比如不能发布图片,发布时间也没有,大家参考就行

猜你喜欢

转载自blog.csdn.net/qq_36332133/article/details/82145251