- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 Crouton 库打印异步任务后收到的文章数。
我的应用使用 navigationDrawer 和不同的 fragment 。
我从不使用这个库,我想知道我必须在哪里执行对 Crouton.makeText 的调用才能在我的应用程序中打印 Crouton 通知?
有关信息,我的应用程序的每个 fragment 都显示带有列表或文章的 ListView 。
这是 RssService 类的代码:
import java.io.IOException;
import java.net.URL;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import de.keyboardsurfer.android.widget.crouton.Crouton;
import de.keyboardsurfer.android.widget.crouton.Style;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
public class RssService extends AsyncTask<String, Void, List<Article>> {
private ProgressDialog progress;
private Context context;
private BretagneNewsFragment derniereNewsListFrag;
public RssService(BretagneNewsFragment derniereNewsListFragment) {
context = derniereNewsListFragment.getActivity();
derniereNewsListFrag = derniereNewsListFragment;
progress = new ProgressDialog(context);
progress.setMessage("Chargement en cours ...");
}
protected void onPreExecute() {
Log.e("ASYNC", "PRE EXECUTE");
progress.show();
}
protected void onPostExecute(final List<Article> articles) {
Log.e("ASYNC", "POST EXECUTE");
derniereNewsListFrag.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
ArticleListAdapter adapter = new ArticleListAdapter(derniereNewsListFrag.getActivity(), articles);
derniereNewsListFrag.setListAdapter(adapter);
adapter.notifyDataSetChanged();
}
});
progress.dismiss();
Crouton.makeText(derniereNewsListFrag.getActivity(), "DD", Style.INFO, ???? ).show();
}
@Override
protected List<Article> doInBackground(String... urls) {
String feed1 = urls[0];
String feed2 = urls[1];
URL url1 = null;
URL url2 = null;
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
url1 = new URL(feed1);
url2 = new URL(feed2);
RssHandler rh = new RssHandler();
xr.setContentHandler(rh);
xr.parse(new InputSource(url1.openStream()));
Log.d("RssService", "doInBackground : URL2 maintenant utilisée");
xr.setContentHandler(rh);
xr.parse(new InputSource(url2.openStream()));
Log.d("RssService", "doInBackground : PARSING FINISHED");
return rh.getArticleList();
} catch (IOException e) {
Log.e("RSS Handler IO", e.getMessage() + " >> " + e.toString());
} catch (SAXException e) {
Log.e("RSS Handler SAX", e.toString());
e.printStackTrace();
} catch (ParserConfigurationException e) {
Log.e("RSS Handler Parser Config", e.toString());
}
return null;
}
}
这是我的 ArticleListAdapter 的代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import com.rss.R;
import com.rss.utils.DateUtils;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ArticleListAdapter extends ArrayAdapter<Article> {
private ArrayList<String> colorList = new ArrayList<String>();
public ArticleListAdapter(Activity activity, List<Article> articles) {
super(activity, 0, articles);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Activity activity = (Activity) getContext();
LayoutInflater inflater = activity.getLayoutInflater();
View rowView = inflater.inflate(R.layout.fragment_article_list, null);
Article article = getItem(position);
TextView textView = (TextView) rowView.findViewById(R.id.article_title_text);
textView.setText(article.getTitle());
TextView src = (TextView) rowView.findViewById(R.id.article_source);
src.setText(article.getSource());
if (article.getSource().equals(" LE TELEGRAMME ")) {
src.setBackgroundColor(Color.parseColor("#D91E00"));
} else if (article.getSource().equals(" OUEST FRANCE ")) {
src.setBackgroundColor(Color.parseColor("#FFFFFF"));
src.setTextColor(Color.parseColor("#EB030C"));
src.setTypeface(null, Typeface.BOLD);
} else {
Log.d("INFO", "SPECIAL CASE !!!");
}
TextView dateView = (TextView) rowView.findViewById(R.id.article_listing_smallprint);
String pubDate = article.getPubDate();
TextView descriptionView = (TextView) rowView.findViewById(R.id.article_title_description);
String completeString = article.getDescription();
String[] strArray = completeString.split("<img");
String result = strArray [0];
// Permet de mettre une chaine dans la cas ou nous n'avons pas de description.
if (result == null || result.trim().equals("")){
descriptionView.setText("Cet article ne contient pas de description supplémentaire.");
} else {
String firstLetterDesc = result.substring(0,1);
if (firstLetterDesc.equals(" ")) {
String resultToSet = changeCharInPosition(0, '\0', result);
descriptionView.setText(resultToSet);
} else {
descriptionView.setText(result);
}
}
TextView premiereLettre = (TextView) rowView.findViewById(R.id.premiere_lettre);
String titleTmp = article.getTitle();
String firstLetter = titleTmp.substring(0,1);
premiereLettre.setText(firstLetter.toUpperCase());
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss Z", Locale.ENGLISH);
Date pDate;
try {
pDate = df.parse(pubDate);
pubDate = " IL Y A " + DateUtils.getDateDifference(pDate);
} catch (ParseException e) {
Log.e("DATE PARSING", "Error parsing date..");
pubDate = "published by " + article.getAuthor();
}
dateView.setText(pubDate);
// Change color of the background of first Letter
LinearLayout rl = (LinearLayout) rowView.findViewById(R.id.color_letter);
String codeCouleur = getRandomColorFromList();
rl.setBackgroundColor(Color.parseColor(codeCouleur));
return rowView;
}
public String changeCharInPosition(int position, char ch, String str){
char[] charArray = str.toCharArray();
charArray[position] = ch;
return new String(charArray);
}
}
感谢您的帮助。
最佳答案
要显示面包丁,您需要做的就是引用您的 Activity,您确实拥有该 Activity。
Crouton.makeText(derniereNewsListFrag.getActivity(), "DD", Style.INFO, ???? ).show();
可以替换为
Crouton.makeText(derniereNewsListFrag.getActivity(), "DD", Style.INFO, (ViewGroup) derniereNewsListFrag.getView()).show();
或
Crouton.showText(derniereNewsListFrag.getActivity(), "DD", Style.INFO, (ViewGroup) derniereNewsListFrag.getView());
但请注意,即使您的 Fragment 不可用(null),您的服务基本上也可以运行。
关于android - 我如何在我的应用程序 fragment 应用程序中调用 crouton.makeText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17327355/
我有一个包含数字和整数的文件,我只想读取整数, 如果它们令人讨厌,请忽略宏,但是我只需要有整数,但是我必须确保还要读取字符串,然后忽略它们 我必须在这里修改什么: #include #include
我有一个这样格式化的txt文件: MyDepartureTown MyDestinationTown 123.45 Vehicle 12 我正在尝试将数据导入到我的 C 程序中。这是我用来实现这一目标
我创建了一个简单的文件,使用 flex,它生成了一个文件 lex.yy.c,现在,我想把它放到 C++ 程序中。 %{ #include %} %% stop printf("Stop co
我的一个程序用 c++ 代码生成一个大文件。有没有办法从另一个C++类调用将生成的代码插入其中? 这是一个小例子,可以清楚地说明我想要实现的目标。 生成的文件示例: FirstClass first
我需要了解我的程序“检查输入十六进制消息的第三个位置” 程序将采用十六进制值输入消息。例如0x0123456789abcdef 程序将检查输入消息的第三个位置,即 0 现在程序将采用另一条十六进制值的
当我将输入从输入文件重定向到 yacc 程序时,在它完成解析文件后,我希望 yacc 解析器打印其所做操作的摘要。如果我通过键盘输入内容然后按 Ctrl+D,我希望它执行相同的操作。有办法做到这一点吗
我正在扫描该文件,但它有两种不同的结构。 文件: ParisRoubaix "Marco MARCATO" 33 UAD ITA 26 5:43:31 ParisRoubaix "Sam BEWLEY
我想将winsock2.lib 添加到我的程序中,但不希望将其包含到最终的可执行文件中。有什么方法可以让我动态加载与winsock2关联的dll吗?如果没有,是否有任何 dll(Windows 附带)
我尝试了一个基本程序来将数据从数据库表检索到java程序中。编译结束后,运行代码时出现异常。控制台中没有显示错误。显示异常消息 import java.sql.*; public class clas
我想用 C++ 创建一个跨平台安装程序。它可以是任何压缩类型,例如 zip 或 gzip,像普通安装程序一样嵌入程序本身。我不想在不同的平台、linux 和 windows 上创建很多更改。如何跨平台
每次尝试用鼠标输入两个顶点时,我都会崩溃。我最近改变了组织每个形状的方式,以确保新形状与旧形状重叠。 这个项目的想法是制作各种交互式 Canvas 。用户可以在直线、三角形和矩形之间进行选择,然后选择
我想在我的程序中显示以下文本。当我在 python 中粘贴以下文本时,它会将反斜杠解释为转义序列并弄乱我的 ascii 艺术..任何解决这个问题的想法极客。这是我的文本想出现在我的节目中 _ _
我正在尝试加载名为 Tut16_ReadText.txt 的文件,并使其运行程序以输出其重或轻。 我收到了粘贴在下面的错误。我无法抽出时间让这个程序运行。谁能解释一下我必须做什么才能使这个程序正常工作
我想使用命令行将列表作为参数传递,例如: $python example.py [1,2,3] [4,5,6] 我希望第一个列表 [1,2,3] 成为 first_list,[4,5,6] 成为 se
在分析 C# 应用程序时,我发现名为“ThePreStub”的系统 (?) 方法中有相当多的 CPU 使用率。这是什么? 最佳答案 参见:CLR Inside out - The Performanc
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我正在用 Python 开发一个游戏,想知道如何给它自己的图标。我使用的是 Windows 计算机,没有安装 Python 的额外东西。哦,我也在使用 3.3 版,这甚至可能吗? P.S 我在 Sta
我正在使用 tkinter 使用 Python 开发一个项目,该项目将允许对 IP 地址进行地理定位。我有原始转换,我可以获取 IP 地址并知道城市、州、国家、经度、纬度等。我想知道是否有任何方法可以
我编写了一个程序,您可以在其中选择任意数字并将其与任意数字的幂相关联。代码运行正常,直到它到达某个部分,然后我必须输入一个字符以使其移动到代码的下一部分。这就是我的意思: #include int
我正在编写“HACKING Art Of Exploitation”一书练习 Convert2.c 第 61 页。 这是我的代码。下面是我的问题。 #include void usage(char
我是一名优秀的程序员,十分优秀!