Click here to Skip to main content
13,045,920 members (47,686 online)
Rate this:
Please Sign up or sign in to vote.
I want to make an application in android like dictionary with eclipse . now the main question is that
1. we can not make an app which redirects you to another app in the same OS , what I mean is that Dictionary app is like this , we have a word we just click on it and it redirects us to another app like word-web to search the word .

2. What I think I want to do is that , our app is like this we have to print something in that app and its meaning comes out .

3. also we can do like this click on the word and it redirects you to a webpage

I am new to android app and these are my ideas I wanna know which is the one is right way to do . Also I was unable to find anything on net about dictionary like I want . if anyone can tell me whats the right way to introduce dictionary app and appropriate tutorial for that , it will be a pleasure to me .

Thank you
Posted 13-Jul-11 15:39pm
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Why do you think that your requirements should lead you to effective dictionary application?

I while ago I happened to develop my own dictionary software supporting XDXF dictionary format ([^]), so I know then this class of software has specific problems which need some special techniques to make dictionary application flexible yet providing sufficient performance.

Having a typical dictionary volume of some tens of megabytes and several hundreds of megabytes for big dictionaries makes loading of the dictionary and search in the dictionary a performance bottleneck.

Re-direction of a request as a whole word make the usage of the dictionary very limited. A user of the dictionary may be not sure about spelling and my need to see several similar words at the same time, as it happens when one uses a dictionary printed on paper. I type first, second and next letters in the input string and see the list of the closest words which looks like a "window" in a whole dictionary. Of course, this list is virtual and is populated on the fly depending on typed letters. Also, it needs unlimited cross-references: every word clicked in the control showing dictionary article should find this word in the dictionary with the same effect — list of closest keys.

Anyway, in you want to have dictionary functionality in two processes (UI is a separate process, and the dictionary itself can be a remote process), you cannot talk about "re-direction" but rather about client-server model, presumably served through TCP. The application protocol should be stateful and remember the user status for the purpose of incremental search described above.

Now, about the server part of such application. The problem of quick search in the dictionary led me the the design of special compact binary presentation of a dictionary (I optionally can convert from XDXF) with index section. The positions in the stream are indexed by several few letters of each key. The size of the dictionary dictates that only an index portion is kept in memory. The file with the dictionary is kept open, the indexing mechanism calculates the position in the stream to start reading from. This mechanism make the speed of search (again, when each entered or modified letter updates the window of of list of keys and selection displays the article on the selected key) very fast, with the lag absolutely undetectable by a human eye.

Rate this: bad
Please Sign up or sign in to vote.

Solution 2

The requirement needed by you can be done before that you need to get all the words and meaning into the db after that we can perform it as per your need

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170713.1 | Last Updated 9 Jun 2017
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100