我有一个活动,从gridview中选择一个图像,它允许您保存图像.我正在为我的所有代码使用异步任务.我从几个类中分离了我的AsyncTask.我如何通过我的活动给他们打电话?如何将字符串传递回AsyncTask.
SingleImageView.class
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.save_image:
new SaveImageTask().execute(image_url,context); //<-- The method execute(String...) in the type AsyncTask<String,String,String> is not applicable for the arguments (String, Context)
return true;
default:
return false;
}
Run Code Online (Sandbox Code Playgroud)
SaveImageTask.class
public class SaveImageTask extends AsyncTask<String, String, String>
{
private Context context;
private ProgressDialog pDialog;
String image_url;
URL myFileUrl = null;
Bitmap bmImg = null;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(context); //<<-- Couldnt Recognise …Run Code Online (Sandbox Code Playgroud) 一切都运行良好.但经过我的应用程序的一些测试后.它崩溃了,在我的Logcat中我看到这个"内容视图尚未创建"经过一些谷歌搜索,我发现我应该将我的listadapter放入onActivityCreated.我的代码有点不同,我使用的是lazyadapter,所以我觉得我需要一些建议.请帮我.
public class AndroidFragment extends SherlockListFragment implements ActionBar.TabListener{
static final String URL = "https://xml.xml";
static final String KEY_SONG = "song";
static final String KEY_ID = "id";
static final String KEY_TITLE = "title";
static final String KEY_CAT_ARTIST = "artistcat";
static final String KEY_DURATION = "duration";
static final String KEY_THUMB_URL = "thumb_url";
static final String KEY_BIG_URL = "big_url";
static final String KEY_CAT_URL = "cat_url";
static final String KEY_DESC = "cat_desc";
ArrayList<HashMap<String, String>> menuItems;
ListAdapter adapter;
Context appContext;
@Override
public View onCreateView(LayoutInflater inflater, …Run Code Online (Sandbox Code Playgroud) 以下是我的代码,我想使用壁纸管理器设置为壁纸.我正在使用Universal Image Loader,但我不知道如何实现壁纸管理器.我的setWall()不起作用,有点令人困惑.
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
public class ImageActivity extends BaseActivity {
private DisplayImageOptions imageoptions;
private ViewPager imagepager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imagepager);
Bundle bundle = getIntent().getExtras();
String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);
imageoptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.noimage)
.cacheOnDisc()
.imageScaleType(ImageScaleType.EXACT) …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作我的顶级操作栏图标,以允许用户返回上一个屏幕.我试图实现这些代码.但没有人工作.任何人都可以指导我这个.我知道这看起来很简单,我是android的新手.以下是我的代码.
问题:当我点击图标按钮时,它只是清除了我的屏幕,而没有进入上一个屏幕.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_item);
checkInternetConnection();
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //<--THIS
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
Intent intent = new Intent(this, SingleViewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud) 如何拉伸我的gridview项目以适应完整的大小,我在下面绘制了一个示例.我尝试了很多方法,但我仍然无法使它适合.我将向您展示我的xml代码.我希望它适合2列.
GridViewItems.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip"
android:orientation="horizontal"
>
<!-- ListRow Left sied Thumbnail image -->
<ImageView
android:id="@+id/list_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Gridview.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:stretchMode="columnWidth"
android:numColumns="2"
android:verticalSpacing="10dp">
</GridView>
Run Code Online (Sandbox Code Playgroud)
MainGridViewImageLoader.class
public class MainGridViewImageLoader {
MemoryCache memoryCache=new MemoryCache();
FileCache fileCache;
private Map<ImageView, String> imageViews=Collections.synchronizedMap(new WeakHashMap<ImageView, String>());
ExecutorService executorService;
public MainGridViewImageLoader(Context context){
fileCache=new FileCache(context);
executorService=Executors.newFixedThreadPool(5);
}
final int stub_id = R.drawable.no_image;
public void DisplayImage(String url, ImageView imageView)
{
imageViews.put(imageView, …Run Code Online (Sandbox Code Playgroud) 我真的不知道如何在我的代码中实现Share Intent.有人可以帮我,我需要重写整个代码吗?我正在使用AsyncTask来实现我的共享意图.我想使用共享意图分享我的图像.请检查我的下面的代码,"缺少类型ShareImageTask的方法startActivity(Intent)".
ShareImageTask.class
public class ShareImageTask extends AsyncTask<String , String , String>
{
private Context context;
private ProgressDialog pDialog;
String image_url;
URL myFileUrl;
String myFileUrl1;
Bitmap bmImg = null;
Intent share;
public ShareImageTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setMessage("Downloading Image ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
try {
myFileUrl = new URL(args[0]);
HttpURLConnection conn …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种方法来禁用ABSherlock操作栏中的顶部图标点击.设置这个getSupportActionBar().setDisplayHomeAsUpEnabled(false);似乎也不起作用.目前我的顶部图标点击是可点击的,只要点击它就会突出显示整个图标.我不想要一个返回功能,我只是希望它不可点击.