Android最全Android 桌面组件【app widget】 进阶项目--心情记录器(1),2024年最新阿里面试场景题

最后

文章所有资料全部已经打包整理好,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析

资料展示:

image

image

image

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

private Button mButton;

private Spinner mSpinner;

private int index = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.update);

mEditText = (EditText) findViewById(R.id.EditText01);

mButton = (Button) findViewById(R.id.Button01);

mSpinner = (Spinner) findViewById(R.id.Spinner01);

final ImageView iv = (ImageView) findViewById(R.id.ImageView01);

ArrayAdapter adpter = new ArrayAdapter(this,

android.R.layout.simple_spinner_dropdown_item, util.text);

adpter

.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

mSpinner.setAdapter(adpter);

SharedPreferences settings = getSharedPreferences(“settinginfo”,

Activity.MODE_PRIVATE);

index = settings.getInt(“imageState”, 0);

mEditText.setText(settings.getString(“heart”, “”));

iv.setImageResource(util.image[index]);

mSpinner.setSelection(index);

mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

// TODO Auto-generated method stub

index = arg2;

iv.setImageResource(util.image[index]);

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

}

});

mButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String text = mEditText.getText().toString();

if (text.equals(“”)) {

return;

}

SharedPreferences shared = getSharedPreferences(“settinginfo”,

Activity.MODE_PRIVATE);

SharedPreferences.Editor editor = shared.edit();

editor.putInt(“imageState”, index);

editor.putString(“heart”, text);

editor.commit();

RemoteViews views = new RemoteViews(update.this

.getPackageName(), R.layout.main);

views.setTextViewText(R.id.TextView01, text);

views.setImageViewResource(R.id.ImageView01, util.image[index]);

ComponentName widget = new ComponentName(update.this,

widgetProvider.class);

AppWidgetManager manager = AppWidgetManager

.getInstance(update.this);

manager.updateAppWidget(widget, views);

update.this.finish();

}

});

}

}

由于组件每创建一次都调用了一次updateAppWidget 这个方法,故此方法也必须去获取键值对

package com.terry;

import android.app.Activity;

import android.app.PendingIntent;

import android.appwidget.AppWidgetManager;

import android.appwidget.AppWidgetProvider;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.widget.RemoteViews;

import android.widget.Toast;

public class widgetProvider extends AppWidgetProvider {

private static RemoteViews rv;

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds) {

// TODO Auto-generated method stub

final int N = appWidgetIds.length;

for (int i = 0; i < N; i++) {

int appWidgetId = appWidgetIds;

updateAppWidget(context, appWidgetManager, appWidgetId);

}

}

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

super.onReceive(context, intent);

}

public static void updateAppWidget(Context context,

AppWidgetManager appWidgeManger, int appWidgetId) {

rv = new RemoteViews(context.getPackageName(), R.layout.main);

SharedPreferences shared = context.getSharedPreferences(“settinginfo”,

Activity.MODE_PRIVATE);

// util.index = settings.getInt(“imageState”, 0);

// mEditText.setText(settings.getString(“heart”, “”));

rv.setTextViewText(R.id.TextView01, shared.getString(“heart”, context

.getResources().getString(R.string.load)));

结语

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图:

由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。

再附一部分Android架构面试视频讲解:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

id架构面试视频讲解:

[外链图片转存中…(img-mTvQLGHd-1715227722360)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值