///Myabapter recycleview展示及点击条目进入web页面
package com.example.com.yuemoni.Abapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.com.yuemoni.Modle.Bean; import com.example.com.yuemoni.R; import java.util.List; /** * Created by 丶未央 on 2018/4/5. */ public class Myabapter extends RecyclerView.Adapter{ Context context; List<Bean.NewslistBean> list; Webone webone; public void Webtwo(Webone webone){ this.webone=webone; } public Myabapter(Context context, List<Bean.NewslistBean> list) { this.context=context; this.list=list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(parent.getContext(), R.layout.item, null); Myviewholder myviewholder = new Myviewholder(view); return myviewholder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { Myviewholder myviewholder= (Myviewholder) holder; myviewholder.textone.setText(list.get(position).getTitle()); myviewholder.texttwo.setText(list.get(position).getCtime()); Glide.with(context).load(list.get(position).getPicUrl()).into(myviewholder.imageview); myviewholder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { webone.webones(position); } }); } @Override public int getItemCount() { return list.size(); } class Myviewholder extends RecyclerView.ViewHolder{ private final ImageView imageview; private final TextView textone; private final TextView texttwo; public Myviewholder(View itemView) { super(itemView); imageview = itemView.findViewById(R.id.imageview); textone = itemView.findViewById(R.id.textone); texttwo = itemView.findViewById(R.id.texttwo); } } public interface Webone{ void webones(int i); }; }
/Molder层
package com.example.com.yuemoni.Modle; import com.example.com.yuemoni.Presenter.Datepresenter; /** * Created by 丶未央 on 2018/4/4. */ public interface Getmodle { void Getdate(String url, Datepresenter datepresenter); }
package com.example.com.yuemoni.Modle; import com.example.com.yuemoni.Presenter.Datepresenter; import com.example.com.yuemoni.Util.OkhtttpUtils; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; /** * Created by 丶未央 on 2018/4/4. */ public class Mygetmodle implements Getmodle { @Override public void Getdate(String url, final Datepresenter datepresenter) { //请求数据 OkhtttpUtils.doGet(url, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); Gson gson = new Gson(); Bean bean = gson.fromJson(string, Bean.class); List<Bean.NewslistBean> list = bean.getNewslist(); datepresenter.success(list); } }); } }
P层
package com.example.com.yuemoni.Presenter; import com.example.com.yuemoni.Modle.Bean; import java.util.List; /** * Created by 丶未央 on 2018/4/4. */ public interface Datepresenter { void success(List<Bean.NewslistBean> list); void errror(); }
/
package com.example.com.yuemoni.Presenter; import com.example.com.yuemoni.Modle.Bean; import com.example.com.yuemoni.Modle.Mygetmodle; import com.example.com.yuemoni.View.Dateview; import java.util.List; /** * Created by 丶未央 on 2018/4/4. */ public class Mydatepresenter implements Datepresenter{ Mygetmodle mygetmodle; Dateview dateview; public Mydatepresenter(Dateview dateview){ this.dateview=dateview; mygetmodle = new Mygetmodle(); }; @Override public void success(List<Bean.NewslistBean> list) { dateview.tobackhome(list); } @Override public void errror() { } public void getNet(String url) { mygetmodle.Getdate(url,this); } }
/View 层
动画播放
package com.example.com.yuemoni.View; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import com.example.com.yuemoni.R; public class MainActivity extends AppCompatActivity { private ImageView xian; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xian = findViewById(R.id.xian); } public void dong(final View view) { ObjectAnimator mator=ObjectAnimator.ofFloat(view,"rotationY", 0.0F, 90.0F); mator.setDuration(3000); mator.start(); mator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); xian.setVisibility(View.VISIBLE); ObjectAnimator mator1=ObjectAnimator.ofFloat(view,"rotationY", 0.0F, 90.0F); mator1.setDuration(3000); mator1.start(); } }); } public void fan(View view) { Intent intent = new Intent(MainActivity.this,Two.class); startActivity(intent); } }
recycleview web传值
package com.example.com.yuemoni.View; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AbsListView; import com.example.com.yuemoni.Abapter.Myabapter; import com.example.com.yuemoni.Modle.Bean; import com.example.com.yuemoni.Presenter.Mydatepresenter; import com.example.com.yuemoni.R; import java.util.List; /** * Created by 丶未央 on 2018/4/4. */ public class One extends AppCompatActivity implements Dateview,Myabapter.Webone{ String url="http://api.tianapi.com/startup/?key=71e58b5b2f930eaf1f937407acde08fe&num=10"; List<Bean.NewslistBean> list; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); list = (List<Bean.NewslistBean>) msg.obj; recycler.setLayoutManager(new LinearLayoutManager(One.this,LinearLayoutManager.VERTICAL,false)); Myabapter myabapter = new Myabapter(One.this, list); recycler.setAdapter(myabapter); myabapter.Webtwo(One.this); } }; private RecyclerView recycler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.one); recycler = findViewById(R.id.recycler); Mydatepresenter mydatepresenter = new Mydatepresenter(this); mydatepresenter.getNet(url); } @Override public void tobackhome(List<Bean.NewslistBean> list) { Message msg = new Message(); msg.obj=list; handler.sendMessage(msg); } @Override public void webones(int i) { Intent intent = new Intent(One.this,Three.class); String url = list.get(i).getUrl(); intent.putExtra("url", url); startActivity(intent); } }
QQ登录
package com.example.com.yuemoni.View; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageView; import com.example.com.yuemoni.R; import com.umeng.socialize.UMAuthListener; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.bean.SHARE_MEDIA; import java.util.Map; /** * Created by 丶未央 on 2018/4/5. */ public class Two extends AppCompatActivity { private ImageView xian; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two); xian = findViewById(R.id.xian); } public void qq(View view) { Intent intent = new Intent(Two.this, One.class); startActivity(intent); } public void dl(View view) { UMAuthListener authListener=new UMAuthListener(){ @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) { } @Override public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) { } @Override public void onCancel(SHARE_MEDIA share_media, int i) { } }; UMShareAPI.get(Two.this).getPlatformInfo(Two.this, SHARE_MEDIA.QQ,authListener); } }
///
分享
package com.example.com.yuemoni.View; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.Toast; import com.example.com.yuemoni.R; import com.umeng.socialize.ShareAction; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.UMShareListener; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.media.UMWeb; public class Three extends AppCompatActivity { private WebView webs; private Button btone; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_three); webs = findViewById(R.id.webs); btone = findViewById(R.id.btone); Intent intent = getIntent(); String url = intent.getStringExtra("url"); webs.loadUrl(url); WebSettings settings = webs.getSettings(); settings.setJavaScriptEnabled(true); webs.setWebViewClient(new WebViewClient()); } public void btone(View view) { UMWeb web = new UMWeb("http://www.baidu.com"); web.setTitle("中华小二货");//标题 web.setDescription("鲍成龙");//描述 new ShareAction(Three.this).withMedia(web).setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN) .setCallback(shareListener).open(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } private UMShareListener shareListener = new UMShareListener() { /** * @descrption 分享开始的回调 * @param platform 平台类型 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @descrption 分享成功的回调 * @param platform 平台类型 */ @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(Three.this,"成功了",Toast.LENGTH_LONG).show(); } /** * @descrption 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, Throwable t) { Toast.makeText(Three.this,"失败"+t.getMessage(),Toast.LENGTH_LONG).show(); } /** * @descrption 分享取消的回调 * @param platform 平台类型 */ @Override public void onCancel(SHARE_MEDIA platform) { Toast.makeText(Three.this,"取消了",Toast.LENGTH_LONG).show(); } }; }
、、、、友盟分享包
package com.example.com.yuemoni.View; import android.app.Application; import com.umeng.commonsdk.UMConfigure; import com.umeng.socialize.PlatformConfig; /** * Created by 丶未央 on 2018/4/5. */ public class apppppp extends Application { { PlatformConfig.setWeixin("wx967daebe835fbeac","5bb696d9ccd75a38c8a0bfe0675559b3"); PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com"); } @Override public void onCreate() { super.onCreate(); // UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b"); UMConfigure.init(this,"5a12384aa40fa3551f0001d1" ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0 // UMShareAPI.get(this); } }
、、、、、、、权限
<!-- 必须的权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <!-- 推荐的权限 --> <!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- //新浪--> <activity android:name="com.umeng.socialize.media.WBShareCallBackActivity" android:configChanges="keyboardHidden|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="false" android:screenOrientation="portrait" > </activity> <activity android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity" android:configChanges="keyboardHidden|orientation" android:exported="false" android:windowSoftInputMode="adjustResize" > </activity> <activity android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:name="com.sina.weibo.sdk.share.WbShareTransActivity"> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!--qq--> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/> <activity android:name="com.umeng.socialize.editorpage.ShareActivity" android:theme="@android:style/Theme.NoTitleBar" android:excludeFromRecents="true" />