|
|
Hi,
I am populating my listview from Sqlite (sometime also from DataTable)
1. when the data is huge its very slow ?
2. how to have filter for this with high speed ?(same as contact list )
Thanks in advanced !
For filtering i have seen this code :
_adapter.Filter.InvokeFilter(_inputSearch.Text);
but just work for one column :
_adapter = new ArrayAdapter<string>(this, Resource.Layout.list_item, Resource.Id.product_name, products);
No USE At ALL !!!!
my code :
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.HesabList);
progress = ProgressDialog.Show(this, "", "Loading ...");
progress.SetProgressStyle(ProgressDialogStyle.Spinner);
progress.Indeterminate = true;
new Thread(new ThreadStart(delegate
{
_btnUpdate = FindViewById<Button>(Resource.Id.UpdateHesabList);
_btnUpdate.Click += new EventHandler(_btnUpdate_Click);
gvHesab = FindViewById<ListView>(Resource.Id.gvHesabList);
gvHesab.ItemClick += new EventHandler<AdapterView.ItemClickEventArgs>(gvHesab_ItemClick);
isTarafHesab = Intent.GetBooleanExtra("IsTarafHesab", false);
txtSearchHesabList = (EditText)FindViewById(Resource.Id.txtSearchHesabList);
txtSearchHesabList.TextChanged += new EventHandler<Android.Text.TextChangedEventArgs>(txtSearchHesabList_TextChanged);
txtSearchHesabList.Gravity = GravityFlags.Right;
Looper.Prepare();
File dbtest = new File(clsBase.SqliteDBPath);
if (!dbtest.Exists() )
{
if (clsBase.HasInternetConnection(this))
createDbSqlite();
else
{
MessageBoxAndroid.Show(this, "Connect to Internet First !");
Finish();
}
}
else
{
fillListView();
}
RunOnUiThread(() => progress.Dismiss());
})).Start();
}
private void fillGridView()
{
try
{
SQLiteDatabase db = OpenOrCreateDatabase("test.db", FileCreationMode.WorldReadable, null);
ICursor cursors = db.RawQuery("select Moen, Hesab, opab, Coab,(select count(*) from tbl_Hest b where a._id >= b._id) as _id,Id from tbl_Hest a", null);
String[] from = Resources.GetStringArray(Resource.Array.gvHesabHeader);
int[] to = { Resource.Id.txt_HesabListGrid_Heen,
Resource.Id.txt_HesabListGrid_Heol ,Resource.Id.txt_HesabListGrid_Heb,
Resource.Id.txt_HesabListGrid_Coab,Resource.Id.txt_HesabListGrid_Row,Resource.Id.txt_HesabListGrid_Id};
RunOnUiThread(() =>
{
SimpleCursorAdapter _HesabGridAdapter = new HesabListGridview(this, Resource.Layout.HesabListGrid, cursors, from, to);
gvHesab.Adapter = _HesabGridAdapter;
});
setListViewHeightBasedOnChildren(gvHesab);
gvHesab.TextFilterEnabled = true;
EditText txtSearchHesabList = (EditText)FindViewById(Resource.Id.txtSearchHesabList);
txtSearchHesabList.TextChanged += new EventHandler<Android.Text.TextChangedEventArgs>
(txtSearchHesabList_TextChanged);
}
catch (Exception ex)
{
}
}
class HesabListGridview : SimpleCursorAdapter
{
ICursor c;
Context context;
Activity activity;
int idS;
public HesabListGridview(Context context, int layout, ICursor c, string[] from, int[] to)
: base(context, layout, c, from, to)
{
this.c = c;
this.context = context;
this.activity = (Activity)context;
}
bool isFirst = true;
public static int dtRowCount = 0;
int CountRepeated = 0;
public override Filter Filter
{
get
{
return base.Filter;
}
}
public override IFilterQueryProvider FilterQueryProvider
{
get
{
return base.FilterQueryProvider;
}
set
{
base.FilterQueryProvider = value;
}
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
convertView = View.Inflate(context, Resource.Layout.HesabListGrid, null);
View row = convertView;
try
{
c.MoveToPosition(position);
TextView txtHesabGrid_Coni = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Hesoen);
TextView txtHesabGrid_Bde = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Hesol);
TextView txtHesabGrid_Nab = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Heab);
TextView txtHesabGrid_Cosab = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Coab);
TextView txtHesabGrid_Row = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Row);
TextView txtHesabGrid_Id = (TextView)convertView.FindViewById(Resource.Id.txt_HesabListGrid_Id);
txtHesabGrid_Coni.SetText(c.GetString(c.GetColumnIndex("Hen")), TextView.BufferType.Normal);
txtHesabGrid_Bde.SetText(c.GetString(c.GetColumnIndex("Hl")), TextView.BufferType.Normal);
txtHesabGrid_Nab.SetText(c.GetString(c.GetColumnIndex("Heb")), TextView.BufferType.Normal);
txtHesabGrid_Cosab.SetText(c.GetString(c.GetColumnIndex("Coab")), TextView.BufferType.Normal);
txtHesabGrid_Row.SetText(c.GetInt(c.GetColumnIndex("_id")).ToString(), TextView.BufferType.Normal);
txtHesabGrid_Id.SetText(c.GetString(c.GetColumnIndex("Id")), TextView.BufferType.Normal);
txtHesabGrid_Id.Visibility = ViewStates.Gone;
if (position % 2 == 0)
{
convertView.SetBackgroundColor(Android.Graphics.Color.ParseColor("#6bcdfb"));
}
else
{
convertView.SetBackgroundColor(Android.Graphics.Color.ParseColor("#2cb8de"));
}
CountRepeated++;
if (17 == CountRepeated)
{
isFirst = false;
}
if (isFirst)
{
HorizontalScrollView hv = (HorizontalScrollView)activity.FindViewById(Resource.Id.scrollHesabListGrid);
hv.FullScroll(FocusSearchDirection.Left);
}
}
catch (Exception ex)
{
}
return (row);
}
}
}
|
|
|
|
|
How can I create a search interface and make my search listed even the activity is from other activity but still within the application.
yn
|
|
|
|
|
|
This is XML parsing code:
public class MainActivity extends Activity {
TextView textview;
NodeList nodelist;
ProgressDialog pDialog;
String url;
String DetailText;
String URL = "Here xml address";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textview = (TextView) findViewById(R.id.text);
new DownloadXML().execute(URL);
}
private class DownloadXML extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setTitle("Loading...");
pDialog.setMessage("Wait...");
pDialog.setIndeterminate(false);
pDialog.show();
}
@Override
protected Void doInBackground(String... Url) {
try {
URL url = new URL(Url[0]);
DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
nodelist = doc.getElementsByTagName("point");
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void args) {
for (int temp = 0; temp < nodelist.getLength(); temp++) {
Node nNode = nodelist.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
textview.setText(textview.getText() + getNode("point", eElement) + "\n" + "\n");
textview.setText(textview.getText() + getNode("name", eElement) + "\n" + "\n");
textview.setText(textview.getText() + getNode("id", eElement) + "\n" + "\n");
Here i need to insert the result from parsing HTML page
}
}
pDialog.dismiss();
}
}
private static String getNode(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0)
.getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
This is HTML parsing code:
import java.net.URL;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HtmlCleanerStudyActivity extends Activity {
static final String BLOG_URL = "http://xjaphx.wordpress.com/";
static final String XPATH_STATS = "//div[@id='blog-stats']/ul/li";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String value = "";
try {
value = getBlogStats();
((TextView)findViewById(R.id.tv)).setText(value);
} catch(Exception ex) {
((TextView)findViewById(R.id.tv)).setText("Error");
}
}
public String getBlogStats() throws Exception {
String stats = "";
HtmlCleaner htmlCleaner = new HtmlCleaner();
CleanerProperties props = htmlCleaner.getProperties();
props.setAllowHtmlInsideAttributes(false);
props.setAllowMultiWordAttributes(true);
props.setRecognizeUnicodeChars(true);
props.setOmitComments(true);
URL url = new URL(BLOG_URL);
TagNode root = htmlCleaner.clean(url);
Object[] statsNode = root.evaluateXPath(XPATH_STATS);
if(statsNode.length > 0) {
TagNode resultNode = (TagNode)statsNode[0];
stats = resultNode.getText().toString();
}
return stats;
}
}
Just need to show the result html parser, where I wrote "Here i need to insert the result from parsing HTML page"
Thanks in advance
|
|
|
|
|
Hi,
How to have this part of code in C# (monodroid).
listView.post(new Runnable()
{
public void run()
{
listView.setSelection(position);
}
});
|
|
|
|
|
Just a guess, but would this work?
listView.post(() => listView.setSelection(position));
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hello,
i am new in Android.
i want to make 1 app which will give latitude and longitude using Network Provider.
when i click on start button app must be start in background even thought i removed app from Active Application.
inshort i have to make 1 process and 1 service which will be run in background.
is there any solution , let me know.
thank you
|
|
|
|
|
|
I am using Ksoap2 to post my data from android mobile to database.I have a local server api of .Net to send this data .I am using following code to do this
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class backMethod extends AsyncTask<String, Object, Object > {
private final ProgressDialog dialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Checking...");
this.dialog.show();
}
// @Override
// protected void onCancelled(Object result) {
//
// super.onCancelled(result);
// }
@Override
protected void onPostExecute(Object result) {
//Here All your UI part is Done
if (result != null) {
tv.setTag(result);
} else {
Toast.makeText(getApplicationContext(),
"Result Found is == " + result + "", Toast.LENGTH_LONG).show();
}
super.onPostExecute(result);
if (this.dialog.isShowing()) {
this.dialog.dismiss();
}
super.onPostExecute(result);
}
@Override
protected Object doInBackground(String... params) {
SoapObject request = new SoapObject(NAMESPACE, OPERATION_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
response = (SoapObject) envelope.getResponse();
//here SoapPrimitive is an important part
Toast.makeText(getApplicationContext(), "SEND", Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "NOT SEND", Toast.LENGTH_LONG).show();
}
return response;
}
Trying too much and goggling hard but fails to post the data.
Please help to resolve this issues.
|
|
|
|
|
SoapObject request = new SoapObject(NAMESPACE, SEND_METHOD_NAME);
SoapSerializationEnvelope envelope = getSOAPEnvelope();
envelope.dotNet = true;
envelope.bodyOut = request;
request.addProperty("InfoToSend", <put your info>);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL, TIMEOUT);
androidHttpTransport.debug=true;
SoapObject resultsRequestSOAP;
try {
androidHttpTransport.call(NAMESPACE + SEND_METHOD_NAME, envelope);
resultsRequestSOAP = (SoapObject) envelope.bodyIn;
String result = resultsRequestSOAP.getProperty(0).toString();
if (result.equalsIgnoreCase(RESULT_OK)) success = true;
else WS_ERROR = result;
}
catch (java.net.ConnectException ec) {
WS_ERROR = context.getString(R.string.WS_BAD_ADDRESS)+": "+URL;
}
catch (java.net.SocketTimeoutException et) {
WS_ERROR = context.getString(R.string.WS_TIMEOUT);
}
catch (java.net.UnknownHostException eh) {
WS_ERROR = context.getString(R.string.WS_NO_NETWORK);
}
catch (Exception ex) {
if (ex.toString().contains("FileNotFoundException")) {
WS_ERROR = context.getString(R.string.WS_NO_DB);
}
else {
WS_ERROR = ex.toString();
}
}
|
|
|
|
|
Considering how many Android devices are ARM-powered, I'm surprised how often the name Intel crops up in the "Learn Android" page's list of Featured Articles.
|
|
|
|
|
what are c# methods???
|
|
|
|
|
hi everybody
im a beginner at c#
now i want to know how to work with c# methods?
can you help me....
|
|
|
|
|
Member 10452133 wrote: i want to know how to work with c# methods? Read .NET Book Zero[^], it explains C# in clear terms. When you have finished that you can move on to the C# tutorials[^]. Also, in future please use the correct forum, this one is for Android questions.
Veni, vidi, abiit domum
|
|
|
|
|
A "method" is similar to a "function"... only that methods are part of an object.
There should be plenty of C# guides online, just start somewhere and post questions in the proper CodeProject forums when you need clarification.
|
|
|
|
|
|
Hi,
Thanks for Your notepad tutorial and coding. Its really helpful.I have on question. How can you delete a note in the list of notes that we saved? using delete button for each single note or using check box option and delete a note? can you please help me. and send me the code for that.
Thank You in Advance..
P.Vijaya Sundaram
|
|
|
|
|
Member 10439333 wrote: Thanks for Your notepad tutorial and coding. Which tutorial are you referring?
Post your question at Comment section of that tutorial/article. You could find the comment section at bottom of that tutorial/article.
And ask one question at a time. Don't expect code. Come with your code after your effort based on that tutorial.
I think you picked wrong forum(Based on your first sentence). And check this one before asking questions in future.
How to get an answer to your question?[^]
|
|
|
|
|
Hello all,
I am new to android mobile programming.
Following this tutorial, http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/[^].
I have encountered several errors when I tried to register a new user or login. It does not allow me to connect to my xmapp server, I could not find out what is wrong.
I have also added
<uses-permission
android:name="android.permission.INTERNET" />
in my android manifest xml file but it still does not work.
I have attached my errors in this email hoping that someone could help me out.
This screenshot shows the error i am facing.
http://i44.tinypic.com/9va61v.jpg[^]
please advice thank you.
modified 4-Dec-13 11:25am.
|
|
|
|
|
Did you see the sectikon at the bottom of that article entitled "Report a Bug"?
Veni, vidi, abiit domum
|
|
|
|
|
oh, yup but it seems like others is able to run the application so I guess there is nothing wrong with the tutorial.Just that when I make changes to the tutorial to link with my server, it does not work.
|
|
|
|
|
Hello my dear,
i want data transfer between laptop Bluetooth and Android Bluetooth. i have no idea for doing that how and where can i start that.Please help me any body.
Advance thanks.
|
|
|
|
|
|
dude go to any shop and said that i want to bluetooth in my lappy they are do something i am sure
|
|
|
|
|