need help for some java errors in edittext widget xml - Java for Android App Development

i am making a simple android app in which user input text in edittext box & when button is pressed input value/word is check with my given value/word but i am getting error during runtime, i searched on web but i dont get my answer.
there is source code & tell me what is wrong
XML code:
<EditText
android:id="@+id/edittext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText4"
android:layout_gravity="center"
android:ems="10" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/progressBar2"
android:layout_alignParentRight="true"
android:layout_gravity="right"
androidnClick="button_click"
android:text="check my word >>" />
Click to expand...
Click to collapse
Java code:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class exer extends Activity {
Public string myword="myapp";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.MainActivity);
}
public void button_click(View view) {
setContentView(R.layout.mainactivity2);
final String word;
final EditText etword1 = (EditText) findViewById(R.id.edittext1);
word= edittext1.getText().toString(); // << here i am getting error
if (word == myword) {
TextView tx = (TextView) findViewById(R.id.Textview);
tx.setText("correct");
}else{
TextView tx = (TextView) findViewById(R.id.TextView1);
tx.setText("incorrect");
}
}
}
Click to expand...
Click to collapse

i have basic java background for android

Devesh25 said:
i have basic java background for android
Click to expand...
Click to collapse
You have already defined a variable for your edittext etword1 use it, not the id
word=etword1.getText().toString();
Sent from my GT-S5570 using XDA Premium 4 mobile app

Jo it is etword1.getText()
Im not sure if .toString() is really necessary but u have to try
---------------------------------
Phone : My new Nexus 4!
OS:
Pure KitKat 4.4.2 stock, no root, no mods (but only for the first time ;D)
---------------------------------
Gesendet von Tapatalk

Why are you using edittext1 instead of etword1?
Inviato dal mio Galaxy Nexus con Tapatalk 2

arpitkh96 said:
You have already defined a variable for your edittext etword1 use it, not the id
word=etword1.getText().toString();
Click to expand...
Click to collapse
CrotaNexus said:
Why are you using edittext1 instead of etword1?
Click to expand...
Click to collapse
ok
i tried it but still getting runtime error at this line
word=etword1.getText().toString;
so i tried in different way:
instead of word=etword1.getText().toString;
i write this:
if (etword1.getText().toString == myword) { // <<once again getting runtime error at this line
TextView tx = (TextView) findViewById(R.id.Textview);
tx.setText("correct");
}else{
TextView tx = (TextView) findViewById(R.id.TextView1);
tx.setText("incorrect");
}
still getting runtime error
Masrepus said:
Jo it is etword1.getText()
Im not sure if .toString() is really necessary but u have to try
Click to expand...
Click to collapse
yup i tries etword.getText();
but show red underline error
i guess something might be wrong due to too long sourcecode so i delete folder & created new project(in eclipse)
it solved runtime error but new problem arised
when i click button it dosent give any respond
i have uploaded source code folder & copy-pasted code in this post
please help me to find out my mistake because it very important for me to learn android development
New XML code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
androidaddingBottom="@dimen/activity_vertical_margin"
androidaddingLeft="@dimen/activity_horizontal_margin"
androidaddingRight="@dimen/activity_horizontal_margin"
androidaddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:text="send"
androidnClick="click"/>
</RelativeLayout>
Click to expand...
Click to collapse
New Java code:
package com.example.sample;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
public String word = "myword";
public String check;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View view) {
final TextView textview = (TextView) findViewById(R.id.textView1);
final EditText edittext = (EditText) findViewById(R.id.editText1);
check = edittext.getText().toString();
if (check == word) {
textview.setText("correct");
}
}
}
Click to expand...
Click to collapse

i dont know how simley come in post
maybe website confused between XML code & smiley code

To respond to click events, there are two ways: either define the onClick method in the button xml or by using an onClickListener. I would use the listener. It goes like this:
public class MainActivity extends Activity implements OnClickListener {
[...]
}
Then after importing, eclipse will underline 'MainActivity' and tell you you have unimplemented methods and if you want to fix this. Do that and then @override
public protected void onClick(View v) {
[...]
}
will appear.
Now in onCreate you have to do this:
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(this);
Now in your case, you only have one item to which you have attached MainActivity as onClickListener. So you just put the code to be executed on the click event in the onClick void.
---------------------------------
Phone : My new Nexus 4!
OS:
Pure KitKat 4.4.2 stock, no root, no mods (but only for the first time ;D)
---------------------------------
Gesendet von Tapatalk

Devesh25 said:
ok
i tried it but still getting runtime error at this line
word=etword1.getText().toString;
so i tried in different way:
instead of word=etword1.getText().toString;
i write this:
if (etword1.getText().toString == myword) { // <<once again getting runtime error at this line
TextView tx = (TextView) findViewById(R.id.Textview);
tx.setText("correct");
}else{
TextView tx = (TextView) findViewById(R.id.TextView1);
tx.setText("incorrect");
}
still getting runtime error
yup i tries etword.getText();
but show red underline error
i guess something might be wrong due to too long sourcecode so i delete folder & created new project(in eclipse)
it solved runtime error but new problem arised
when i click button it dosent give any respond
i have uploaded source code folder & copy-pasted code in this post
please help me to find out my mistake because it very important for me to learn android development
New XML code:
New Java code:
Click to expand...
Click to collapse
You should put else command with if command. Because it is possibility that word entered by you doesn't matches the "myword" hence button doesn't responds .
Do like this.
if(...){all your coding}
else{textView.setText("incorrect");}
Sent from my GT-S5570 using XDA Premium 4 mobile app

arpitkh96 said:
You have already defined a variable for your edittext etword1 use it, not the id
word=etword1.getText().toString();
Sent from my GT-S5570 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
arpitkh96 said:
You should put else command with if command. Because it is possibility that word entered by you doesn't matches the "myword" hence button doesn't responds .
Do like this.
if(...){all your coding}
else{textView.setText("incorrect");}
Click to expand...
Click to collapse
i tried like you said but still same problem
Masrepus said:
To respond to click events, there are two ways: either define the onClick method in the button xml or by using an onClickListener. I would use the listener. It goes like this:
public class MainActivity extends Activity implements OnClickListener {
[...]
}
Then after importing, eclipse will underline 'MainActivity' and tell you you have unimplemented methods and if you want to fix this. Do that and
Click to expand...
Click to collapse
ok i use onClickListener but it not working
see the java code & source code folder is attached in post:
public class MainActivity extends Activity {
public String word = "myword";
public String check;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final TextView textview = (TextView) findViewById(R.id.textView1);
final EditText edittext = (EditText) findViewById(R.id.editText1);
check = edittext.getText().toString();
if (check == word) {
textview.setText("correct");
}
}
});
}
}
i dont understand what's the problem in my code?? :crying:
compile my app on you android emulator & tell me are you facing same problem & what is wrong in my source code

Code:
package com.example.sample;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class MainActivity extends Activity {
public String word="myword";
public String check;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}public void click(View v){
final TextView textview = (TextView) findViewById(R.id.textView1);
final EditText edittext = (EditText) findViewById(R.id.editText1);
check = edittext.getText().toString();
if (check.equals(word)) {
textview.setText("correct");
}else{textview.setText("incorrect");}
}
}
Sent from my GT-S5570 using XDA Premium 4 mobile app

arpitkh96 said:
Code:
package com.example.sample;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class MainActivity extends Activity {
public String word="myword";
public String check;
@Override
protected void onCreate(Bundle savedInstanceState) {
s....
Sent from my GT-S5570 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
:good: awesome dude thanks :laugh: now its working,
can you explain me what is the reason of using (View v) instead of (View view)

Devesh25 said:
:good: awesome dude thanks :laugh: now its working,
can you explain me what is the reason of using (View v) instead of (View view)
Click to expand...
Click to collapse
v is same as your view.
Just a variable
Sent from my GT-S5570 using XDA Premium 4 mobile app

You can name it the way you like, the inly important thing is the data type, in this case View
---------------------------------
Phone : My new Nexus 4!
OS:
Pure KitKat 4.4.2 stock, no root, no mods (but only for the first time ;D)
---------------------------------
Gesendet von Tapatalk

you are trying to assign vlaue to a final variable, you can't do this.

Related

webview help

I am having trouble creating a webview app for my already mobile ready site.
I keep getting this error in the emulator:
The application window cleaning forums (process com.windowcleaningforums) has stopped unexpectadly
The app never actualy loads just goes straight to this.
Basically i already have my sites mobile ready and browsing to them on your mobile works fine, but would like to put these into apps.
With a back, forward and refresh button when hitting menu button on phone.
(I am not sure what i need to add these yet but any advice would be great)
My project is set as bellow
Application name: Window Cleaning Forums
Package name: com.windowcleaningforums
Create activity: windowcleaningforums
Mini SDK version: 4
windowcleaningforums.java
Code:
package com.windowcleaningforums;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class windowcleaningforums extends Activity {
/** Called when the activity is first created. */
//@Override
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.windowcleaningforums.co.uk");
mWebView.setWebViewClient(new HelloWebViewClient());
}
}
Main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<webView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Manifest
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.windowcleaningforums"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".windowcleaningforums"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
I am very new and im not quite sure what is causing it any help would be great. Thanks
I get this if that is any help i am not sure what it means though.
[2011-01-12 22:35:07 - DeviceMonitor]Sending jdwp tracking request failed!
This is the log if that helps also i really could do with some help peeps, nobody seems to want to. I know i am new and prob asking stupid questions but how am i supposed to learn if i dont ask questions.
Hi cyberpedz,
Probably just a typo but in your main.xml the WebView tag should have a capital "W" like so:
<WebView xmlns:andro...
You did the right thing looking in the log. That's what helped to figure this one out: there was an exception stack trace in the log. (Keep an eye out for the "AndroidRuntime" tag)
Thanks i have changed that but no difference.
I do have a red dot over a hellowebview class though
When viewing windowcleaningforums.java and looking at the right in outline i have a read dot over hellowebviewclient
Could it be something to do with this bit of code?
Code:
public class windowcleaningforums extends Activity {
/** Called when the activity is first created. */
//@Override
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Try moving the
Code:
//@Override
just before onCreate and uncomment it.
Also Java classes should start with a capital (public class Windowcleaningforum). Make sure you modify the Manifest accordingly.
Ok finally i have it working, it was me being blind i missed a webView now changed to Webview and all works thanks so much.
Now i am trying to get a loading progress bar or even better spinning circle.
What code would i need for this and where abouts in my java bellow would i fit it in?
Code:
package com.windowcleaningforums;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class windowcleaningforums extends Activity {
/** Called when the activity is first created. */
//@Override
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.WebView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.windowcleaningforums.co.uk");
mWebView.setWebViewClient(new HelloWebViewClient());
}
}
Anyone know how to get the spinning circle while pages loads? and how to imput into my code above?
Would be a great help
Ok finally i have a running webview in the market what i would like to do now is add a soft menu for a back, refresh and forward button what code do i need and where would i put it in my java below?
Code:
package com.windowcleaningforums;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class windowcleaningforums extends Activity
{
final Activity activity = this;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
WebView webView = (WebView) findViewById(R.id.WebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle(" Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http://www.windowcleaningforums.co.uk");
}
}
So why is it no body wants to help is it the way i ask? is it that developers think they are above the noob? or you really cant b bothered!!
I have even offered to pay for help in the past yet nobody is interested maybe it is that no one really knows the answers.
cyberpedz said:
So why is it no body wants to help is it the way i ask? is it that developers think they are above the noob? or you really cant b bothered!!
I have even offered to pay for help in the past yet nobody is interested maybe it is that no one really knows the answers.
Click to expand...
Click to collapse
It's not that developers can't be bothered, but generally they will have other things to do than help out others. The thing is, you're asking on help for pretty basic stuff. This is something that you should know already, and if don't I suggest you should read through Android's developer website one more time and look at the API examples/demos too.
Hints for your problem; Add the buttons as a merge layout in your XML and then link them with your web view, or add them as menu options. Googling for both will surely give you enough results to get you on your way, these are pretty basic things you want to do after all.

[GUIDE-DEV][HTC Sense SDK, Sense 4,5,6] How to build apps for HTC Sense

Complete GUIDE to develop an application using HTC OpenSense SDK​
Requirements:
Eclipse
Basic knowledge of Android App Development. I will not explain basic things (Like making activity, listview and etc)
HTC OpenSense SDK Installed - See post 4 How to add Reference Library
HTC Phone with HTC Sense. Not For AOSP ROMs
Create Project with OpenSense SDK
Create new project. Name it as you want. These are requirements. Other you can state as you want
Minimum Required SDK - 15
Target SDK - >= 19 (or older is 16)
Compile with - HTC OpenSense API 19 (or older is 16)
Theme - Holo Light with dark action bar
Create activity - Blank
Navigation type - None
Check if SDK is choosen correctly
In your project in Android Dependencies should be HTCExtension.jar file
Above Android Dependencies should be stated which SDK api you are using. HTC OpenSense APIs [Android 4.4.2] (or older is 4.1.2)
You can start building your application with HTC OpenSense SDK.
Guide content:
Add HTC Carousel with Tabs
[*]Add 3 Dot menu to actionbar
[*]HTC AlertDialog example
[*]HTC ListView and HtcListActivity example
[*]Add HTC Sense Skin support (Only Sense 3.6 to Sense 4.1)
[*]Using HTCPreference in your App
[*]Add Sense 6 theme support to your application
[*]Add HTC's Swipe2Update to ListView
[*]Add SlidingMenu
[*]Expandable List View. Thx to DHD22800
[*]Quick tips. Thx to DHD22800
​
If I helped you to create your first Application using HTC OpenSense SDK simply rate thread and hit thanks button, give credits and link to this Thread. If you are brave enought to admitt that this thread is helped you.
In any case Im doing it to help you to learn more​
HTC Carousel Activity/Fragment (Swipeable tabs) - Sense 3.6 up to Sense 6 Samples
HTC Carousel with Tabs for Sense 3.6 up to Sense 4 (Using Activities)
Create classes and Carousel (HTC Sense Tabs)
Create simple activities
Create two classes Tab1.java; Tab2.java
Create two layout xml files - tab_1.xml; tab_2.xml;
Place any two different png icons for Tab1 and Tab2 reference
tab_1.xml
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is Tab1" />
</RelativeLayout>
tab_2.xml
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is Tab2" />
</RelativeLayout>
Tab1.java
Code:
package com.yourpackage.name;
import android.app.Activity;
import android.os.Bundle;
public class Tab1 extends Activity {
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_1);
}
}
Tab2.java
Code:
package com.yourpackage.name;
import android.app.Activity;
import android.os.Bundle;
public class Tab2 extends Activity {
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_2);
}
}
Create carousel (HTC Sense Tabs) and put tabs together
Create class: TabProvider.java; Remove everything inside class and place this code:
com.yourpackage.name - it is your name of package.
TabProvider.java
Code:
package com.yourpackage.name;
import com.htc.content.CarouselProvider;
[user=1299008]@supp[/user]ressWarnings("deprecation")
public class TabProvider extends CarouselProvider {
final static String AUTHORITY =
"com.yourpackage.name.TabProvider";
public TabProvider() {
super();
setupCarousel(AUTHORITY);
}
}
Open MainActivity, remove everything from class and paste this code:
MainActivity.java
Code:
package com.yourpackage.name;
import android.content.Intent;
import android.os.Bundle;
import com.htc.widget.CarouselActivity;
import com.htc.widget.CarouselHost;
public class MainActivity extends CarouselActivity {
final static String AUTHORITY =
"com.yourpackage.name.TabProvider";
public MainActivity() {
super(AUTHORITY);
}
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setGId(1);
super.onCreate(savedInstanceState);
final CarouselHost mPanelHost = getCarouselHost();
mPanelHost.addTab("Tab1", this, R.string.tab_1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
(new Intent("com.yourpackage.name.Tab1")));
mPanelHost.addTab("Tab2", this, R.string.tab_2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
(new Intent("com.yourpackage.name.Tab2")));
}
}
Configuring manifest
Dont forget, all classes have to be in Manifest.
Code:
<activity
android:name=".Tab1"
android:screenOrientation="portrait"
android:configChanges="orientation"
android:label="Tab1" >
<intent-filter>
<action android:name="com.yourpackage.name.Tab1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Tab2"
android:screenOrientation="portrait"
android:configChanges="orientation"
android:label="Tab2" >
<intent-filter>
<action android:name="com.yourpackage.name.Tab2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Also for HTC SDK you have to state Provider: Create provider at the end of Manifest before </application> tag
Code:
<provider
android:name="com.yourpackage.name.TabProvider"
android:authorities="com.yourpackage.name.TabProvider" />
Create ActionBar in HTC Sense Style
For all tabs in your main activity you dont need to create actionbar for each of them, you need only one Actionbar for all Tabs.
That means all Activities which will be part of TabCarousel it will use the same action bar from MainActivity.
Make Changes in your mainactivity as follow:
MainActivity.java with ActionBar
Code:
package com.yourpackage.name;
import android.content.Intent;
import android.os.Bundle;
import com.htc.widget.CarouselActivity;
import com.htc.widget.CarouselHost;
[COLOR="Red"]import com.htc.widget.ActionBarExt;
import com.htc.widget.ActionBarText;[/COLOR]
public class MainActivity extends CarouselActivity {
final static String AUTHORITY =
"com.yourpackage.name.TabProvider";
[COLOR="red"]public static ActionBarText mActionText;[/COLOR]
public MainActivity() {
super(AUTHORITY);
}
[COLOR="red"] private void SetupActionBar()
{
Object obj = new ActionBarExt(this, getActionBar());
((ActionBarExt)obj).setFullScreenEnabled(true);
((ActionBarExt)obj).enableHTCLandscape(false);
mActionText = new ActionBarText(this);
mActionText.setPrimaryText(R.string.app_name);
obj = ((ActionBarExt)obj).getCustomContainer();
((ActionBarContainer)obj).setRightDividerEnabled(true);
((ActionBarContainer)obj).addCenterView(mActionText);
}[/COLOR]
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setGId(1);
super.onCreate(savedInstanceState);
final CarouselHost mPanelHost = getCarouselHost();
[COLOR="red"]SetupActionBar();[/COLOR]
mPanelHost.addTab("Tab1", this, R.string.tab_1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
(new Intent("com.yourpackage.name.Tab1")));
mPanelHost.addTab("Tab2", this, R.string.tab_2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
(new Intent("com.yourpackage.name.Tab2")));
}
}
HTC Carousel with Tabs for Sense 4.1 up to Sense 5.5 (Using Fragments)
Create Carousel Fragment, Tabs, MainActivity
Create Tab Fragments
Now instead of Activities we will use Fragments, and it is difficult for some users. And I will try to explain how to build Carousel and not how to build Fragment Activity. But as example you can refer to my Open Source project myStore (which now converted to Fragments)
Create two classes Tab1Fragment and Tab2Fragment
Tab1Fragment.java
Code:
package your.package.name;
[COLOR="Lime"]#2[/COLOR] import android.app.Fragment;
[COLOR="lime"]#1[/COLOR] public class Tab1Fragment [B][COLOR="red"]extends Fragment[/COLOR][/B] {
Button button;
[COLOR="lime"]#3[/COLOR] public Tab1Fragment () {
}
[COLOR="lime"]#4[/COLOR] [user=439709]@override[/user]
public [B][COLOR="Red"]View onCreateView[/COLOR][/B](LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab1, container, false);
[COLOR="Lime"]#7[/COLOR] button = (Button) [B][COLOR="Red"]view.[/COLOR][/B]findViewById(R.id.button);
[COLOR="RoyalBlue"][I]//All your code that you need when application is first time created (see onCreate method example)[/I][/COLOR]
[COLOR="lime"]#5[/COLOR] [B][COLOR="red"]return view;[/COLOR][/B]
}
[COLOR="lime"]#6[/COLOR]
}
As you can see the Class structure is different from what you might get used.
Now you need to extend class as Fragment (#1) and import android.app.Fragment; (#2)
Then you need to have public method which represent the entire Class with the name of the Class (#3)
And Fragment uses onCreateView method instead of onCreate in Activity (#4)
And you also need return statement for the view (#5) which will be at the end after all your code inside onCreateView method
Outside onCreateView you will have all your methods for the purpose of application and those methods you will call from onCreateView method.
Example of (#7) is that how you need to use findViewById method. you need to add view. before the method. Other than tha is the same
Now create Tab2Fragment and use the same method but different layout resources.
Create Tab Provider
Code:
package your.package.name;
import com.htc.fragment.content.CarouselProvider;
public class TabProvider extends CarouselProvider {
public TabProvider(){
super();
setupCarousel(MainActivity.AUTHORITY);
}
}
Create CarouselFragment
Now to store tabs in your application we will use separate Carousel class where you will identify each tab, name, Class, icons , etc
For each tab create method for it for example
Code:
private void addTab1(CarouselHost host, String tag, int icon, int str) {
host.addTab(getActivity(), new CarouselTabSpec(tag,
str, icon, icon, icon, Tab1Fragment.class.getName()));
}
private void addAnotherTab(CarouselHost host, String tag, int icon, int str) {
host.addTab(getActivity(), new CarouselTabSpec(tag,
str, icon, icon, icon, AnotherTabFragment.class.getName()));
}
and in onActivityCreated method add your tab as in example
Code:
addAnotherTab(host, "AnotherTab", R.drawable.another_icon,
R.string.another_tab);
Carousel.java
Code:
package your.package.name;
import android.os.Bundle;
import com.htc.fragment.widget.CarouselFragment;
import com.htc.fragment.widget.CarouselHost;
import com.htc.fragment.widget.CarouselTabSpec;
public class Carousel extends CarouselFragment {
public Carousel() {
super(MainActivity.AUTHORITY);
requestCarouselFeature(CarouselFragment.FEATURE_CUSTOM_TITLE);
}
private void addTab1(CarouselHost host, String tag, int icon, int str) {
host.addTab(getActivity(), new CarouselTabSpec(tag,
str, icon, icon, icon, Tab1Fragment.class.getName()));
}
private void addTab2(CarouselHost host, String tag, int icon, int str) {
host.addTab(getActivity(), new CarouselTabSpec(tag,
str, icon, icon, icon, Tab2Fragment.class.getName()));
}
[user=439709]@override[/user]
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final CarouselHost host = getCarouselHost();
addTab1(host, "Tab1", R.drawable.ic_tab1,
R.string.tab1);
addTab2(host, "Tab2", R.drawable.ic_tab2,
R.string.tab2);
}
}
Create MainActivity
Now MainActivity will be simple Activity with reference to Carousel class.
Code:
package your.package.name;
public class MainActivity extends Activity {
final static String AUTHORITY = "your.package.name.MainActivity";
private Carousel mCarousel = null;
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
final int rootId = 1;
FrameLayout viewRoot = new FrameLayout(this);
viewRoot.setId(rootId);
setContentView(viewRoot);
mCarousel = new Carousel();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(rootId, mCarousel);
ft.commit();
registerForContextMenu(viewRoot);
}
}
Configuration of Manifest
For Fragments you dont need anymore to add permission for them in Manifest (Only for Activities)
So basically with One mainactivity and two Tabs your manifest should look like
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name"
android:versionCode="10"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
allowSkinChange="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="your.package.name.MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="your.package.name.TabProvider"
android:authorities="your.package.name.MainActivity" />
</application>
</manifest>
Make sure your provider is exaclty as follow.​
HTC Carousel with Tabs for Sense 6 (Using Fragments)
Create CarouselFragment, MainActivity, Tabs
CarouselFragment:
Code:
package com.your.pkg;
[COLOR="red"]import com.htc.fragment.widget.CarouselFragment; <!-- Make sure the imports from com.htc.fragment.*-->
import com.htc.fragment.widget.CarouselHost;
import com.htc.fragment.widget.CarouselTabSpec;[/COLOR]
importcom.your.pkg.MainActivity;
import com.your.pkg.R;
import android.os.Bundle;
public class Carousel extends [COLOR="Red"]CarouselFragment[/COLOR] {
public Carousel() {
super(MainActivity.AUTHORITY);
requestCarouselFeature(CarouselFragment.FEATURE_CUSTOM_TITLE);
}
private void addTab(CarouselHost host, String tag, int icon, int str, String tag5) {
host.addTab(getActivity(), new CarouselTabSpec(tag,
str, tag5));
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final CarouselHost host = getCarouselHost();
addTab(host, [COLOR="Blue"]"FirstTab"[/COLOR], R.drawable.ic_launcher,
R.string.[COLOR="Blue"]first[/COLOR], First.class.getName());
addTab(host, [COLOR="Blue"]"SecondTab"[/COLOR], R.drawable.ic_launcher,
R.string.[COLOR="Blue"]second[/COLOR], Second.class.getName());
[COLOR="Red"]<!-- Add as many addTab(); methods as you need Tabs. The addTab() is universal-->[/COLOR]
}
}
MainActivity
Code:
public class MainActivity extends MfMainActivity {
public final static String AUTHORITY = "mikrosmile.kontrol.MainActivity";
private Carousel mCarousel = null;
static Window window;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
super.onCreate(savedInstanceState);
final int rootId = 1;
FrameLayout viewRoot = new FrameLayout(this);
viewRoot.setId(rootId);
setContentView(viewRoot);
mCarousel = new Carousel();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(rootId, mCarousel);
ft.commit();
registerForContextMenu(viewRoot);
getWindow().setFormat(1);
}
}
Tabs
Code:
Any Activity or Fragment
HTC's Release to Refresh method (Swipe2Refresh)
The Release to Refresh is like this:
View attachment 2711413
It can be added to any View. I will show example how to add it to ListView
Code:
[COLOR="red"]import com.htc.widget.OnPullDownListener;[/COLOR]
public static ActionBarRefresh aRefresh;
@Override
protected void onCreate(Bundle bundle) {
//Adding inside onCreate method of you listActivity
list.[COLOR="Red"]setOnPullDownListener(new PullDown());[/COLOR]
}
public class PullDown implements OnPullDownListener{
//just a class inside your listActivity
@Override
public void onGapChanged(int top, int bottom) {
if(top != 0){
actionbarext.getCustomContainer().setRotationMax(top);
actionbarext.getCustomContainer().setRotationProgress(bottom);
//actionbarext.getCustomContainer is your ActionBar container
}
}
@Override
public void onPullDownCancel() {
actionbarext.getCustomContainer().setUpdatingState(0);
}
@Override
public void onPullDownRelease() {
actionbarext.getCustomContainer().setUpdatingState(0);
//do whatever you need to update the list here, you can call a method or AsyncTask from here
}
@Override
public void onPullDownToBoundary() {
actionbarext.getCustomContainer().setRotationProgress(actionbarext.getCustomContainer().getRotationMax());
}
}
Code:
On your method to update list add this to onPreExecute
aRefresh.setVisibility(View.VISIBLE);
aRefresh.setPrimaryText("Updating...");
actionbartext.setPrimaryVisibility(View.GONE);
actionbartext.setSecondaryVisibility(View.GONE);
When you finish your task to update list, inside onPostExecute add this
actionbarext.getCustomContainer().setUpdatingState(0);
Code:
Inside your method to SetupActionBar add this
aRefresh = new ActionBarRefresh(c);
aRefresh.setVisibility(View.GONE);
actionbarext.getCustomContainer().addCenterView(aRefresh);
​
Add HTC Sense 6 Theme support to your app
Inside your MainActivity add this method
Code:
public static int getHtcThemeID(Context context, int i)
{
return HtcWrapConfiguration.getHtcThemeId(context, i);
}
And in onCreate method add this
Code:
setTheme(getHtcThemeID(context, 0));
This method is returning current Choosen theme ID by Variable from 0 to 3.
So, when you open Personalization - Theme. You see 4 Themes. First 3 has different Color boxes at the top. The first 3 is the actual variable integer from 0 - 3.
So, if you want to get , let's say Red color from Theme 2. You have to Choose Theme 2 in the Theme Settings, and in the app use this:
Code:
setTheme(getHtcThemeID(context, 3));
Once you change Theme, it will also use The Orange color from Theme 1, and the Purple Color from Theme 3
​
Add SlidingMenu to your Sense application
To make the sliding menu in your application like Mail app or File manager app, follow this:
View attachment 2876504
Code:
public class MainActivity extends [COLOR="Red"]SlidingActivity [/COLOR]{
[COLOR="red"]private SlidingMenu mSlidingMenu;[/COLOR]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
window = getWindow();
setContentView(R.layout.activity_main);
[COLOR="red"]setBehindContentView(R.layout.activity_behind);
initSlidingMenu();[/COLOR]
SetupActionBar(this);
}
private void initSlidingMenu()
{
mSlidingMenu = getSlidingMenu();
[COLOR="red"]mSlidingMenu.setBehindWidth(500);[/COLOR] [COLOR="Lime"]//any width as you want[/COLOR]
mSlidingMenu.setFadeDegree(0.5F);
mSlidingMenu.setFadeEnabled(true);
mSlidingMenu.setMode(0);
mSlidingMenu.setTouchModeAbove(0);
mSlidingMenu.setOnOpenedListener(new com.htc.widget.SlidingMenu.OnOpenedListener() {
public void onOpened()
{
initSlidingMenuContent();
}
});
}
private void initSlidingMenuContent(){
[COLOR="red"] mSlidingMenu.setShadowWidth(50);
mSlidingMenu.setShadowDrawable(ICservices.getShadowDrawable());[/COLOR][COLOR="Lime"]//any shadow drawable you want
//here is all your code that represent the behind layout. it can be listview or any other View you need[/COLOR]
}
[COLOR="SeaGreen"]//if you want to have a toggle at the actionbar, also add OnClickListener to ActionbarTextView and add IconView to Actionbar[/COLOR]
}
add this permission to Manifest:
[COLOR="red"]<uses-permission android:name="com.htc.permission.APP_DEFAULT" />[/COLOR]
Add 3 Dot menu to actionbar
For the Menu in actionbar you just implement simple menu method, but you dont need to use menu.xml for it.
Also you dont need to create string values for Menu, it will generate automatically for you, the icon, and the name.
This is method to create Menu in ActionBar. Add it in MainActivity before SetupActionBar() method
Code:
public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add("ContextMenu");
}
[user=439709]@override[/user]
public boolean onCreateOptionsMenu (Menu menu) {
menu.add(1, 1, 1, R.string.settings);
return true;
}
public boolean onOptionsItemSelected(MenuItem menuitem)
{
boolean flag = true;
switch (menuitem.getItemId())
{
case 1:
startActivity(new Intent(this, Settings.class));
break;
}
return flag;
}
This is your new MainActivity with Menu
Code:
package com.yourpackage.name;
import android.content.Intent;
import android.os.Bundle;
import com.htc.widget.CarouselActivity;
import com.htc.widget.CarouselHost;
import com.htc.widget.ActionBarExt;
import com.htc.widget.ActionBarText;
[COLOR="Red"]import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;[/COLOR]
public class MainActivity extends CarouselActivity {
final static String AUTHORITY =
"com.yourpackage.name.TabProvider";
public static ActionBarText mActionText;
public MainActivity() {
super(AUTHORITY);
}
[COLOR="red"]public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add("ContextMenu");
}
[user=439709]@override[/user]
public boolean onCreateOptionsMenu (Menu menu) {
menu.add(1, 1, 1, R.string.settings);
return true;
}
public boolean onOptionsItemSelected(MenuItem menuitem)
{
boolean flag = true;
switch (menuitem.getItemId())
{
case 1:
startActivity(new Intent(this, Settings.class));
break;
}
return flag;
}[/COLOR]
private void SetupActionBar()
{
Object obj = new ActionBarExt(this, getActionBar());
((ActionBarExt)obj).setFullScreenEnabled(true);
((ActionBarExt)obj).enableHTCLandscape(false);
mActionText = new ActionBarText(this);
mActionText.setPrimaryText(R.string.app_name);
obj = ((ActionBarExt)obj).getCustomContainer();
((ActionBarContainer)obj).setRightDividerEnabled(true);
((ActionBarContainer)obj).addCenterView(mActionText);
}
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setGId(1);
super.onCreate(savedInstanceState);
final CarouselHost mPanelHost = getCarouselHost();
SetupActionBar();
mPanelHost.addTab("Tab1", this, R.string.tab_1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
R.drawable.ic_tab1,
(new Intent("com.yourpackage.name.Tab1")));
mPanelHost.addTab("Tab2", this, R.string.tab_2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
R.drawable.ic_tab2,
(new Intent("com.yourpackage.name.Tab2")));
}
}
HTC AlertDialog​
In order to have alertdialog you need to have OnClickListener and inside OnClickListener you paste alertDialog.
Code:
public void onItemClick(HtcAdapterView<?> parent, View view, int position, long id) {
[COLOR="red"]HtcAlertDialog.Builder[/COLOR] alertDialog = new [COLOR="red"]HtcAlertDialog.Builder[/COLOR]([B]YourActivity.this[/B]);
alertDialog.setTitle(R.string.title_txt);
alertDialog.setMessage(R.string.message_txt);
alertDialog.setIcon(R.drawable.icon);
alertDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
//Do your actions here when user click Yes
}
});
alertDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Do your action here when user click No.. or just cancel dialog using follow..
dialog.cancel();
}
});
alertDialog.show();
}
As you can see Dialog is not so difficult, but need to identify exaclty which Builder you are gonna use.
YourActivity.this - means the activity where you create the dialog
You can also see available options of what you can implement inside dialog.. like 3 buttons.
Start typing alertDialog. finish with the dot and in Eclipse there will be new pop-up window and you can add some more
Also dont forget alertDialog.show(); at the end, otherwise Dialog wont shows​
HTC ListView and HtcListActivity. ​
There are two ways of implementing Htc List view. You can use Simple Activity, Fragment or just easy use HtcListActivity extension.
For full htc style you need to use Main List layout, and Details layout + List adapter.
Example using Activity
Code:
public class AboutActivity extends Activity {
[COLOR="Red"]HtcListView lv1;[/COLOR]
[user=439709]@override[/user]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_activity);
ArrayList<AboutDetails> image_details = GetSearchResults();
[COLOR="red"]final HtcListView lv1 = (HtcListView) findViewById(R.id.about_list);[/COLOR]
[user=1299008]@supp[/user]ressWarnings("unused")
lv1.setAdapter(new AboutListBaseAdapter(this, image_details));
lv1.setOnItemClickListener(new HtcAdapterView.OnItemClickListener() {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
[user=439709]@override[/user]
public void onItemClick(HtcAdapterView<?> a, View v, int position, long id) {
vibrator.vibrate(50);
Object o = lv1.getItemAtPosition(position);
final AboutDetails obj_itemDetails = (AboutDetails)o;
}
});
}
private ArrayList<AboutDetails> GetSearchResults(){
ArrayList<AboutDetails> results = new ArrayList<AboutDetails>();
AboutDetails item_details = new AboutDetails();
item_details.setName(R.string.mikrosmile);
item_details.setItemDescription(R.string.mikrosmile_info);
item_details.setImageNumber(1);
results.add(item_details);
return results;
}
}
AboutDetails
Code:
public class AboutDetails {
public int getName() {
return name;
}
public void setName(int name) {
this.name = name;
}
public int getItemDescription() {
return itemDescription;
}
public void setItemDescription(int itemDescription) {
this.itemDescription = itemDescription;
}
public int getImageNumber() {
return imageNumber;
}
public void setImageNumber(int imageNumber) {
this.imageNumber = imageNumber;
}
private int name ;
private int itemDescription;
private int imageNumber;
}
AboutListBaseAdapter
public class AboutListBaseAdapter extends BaseAdapter {
private static ArrayList<AboutDetails> aboutDetailsrrayList;
private Integer[] imgid = {
R.drawable.mikrosmile,
};
private LayoutInflater l_Inflater;
public AboutListBaseAdapter(Context context, ArrayList<AboutDetails> results) {
aboutDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
}
public int getCount() {
return aboutDetailsrrayList.size();
}
public Object getItem(int position) {
return aboutDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.about_htc_details, null);
holder = new ViewHolder();
holder.txt_itemName = ([COLOR="red"]HtcListItem2LineText[/COLOR]) convertView.findViewById(R.id.list_item);
holder.itemImage = ([COLOR="red"]HtcListItemTileImage[/COLOR]) convertView.findViewById(R.id.list_item_img);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txt_itemName.setPrimaryText(aboutDetailsrrayList.get(position).getName());
holder.txt_itemName.setSecondaryTextSingleLine(false);
holder.txt_itemName.setSecondaryText(aboutDetailsrrayList.get(position).getItemDescription());
holder.itemImage.setTileImageResource(imgid[aboutDetailsrrayList.get(position).getImageNumber() - 1]);
return convertView;
}
static class ViewHolder {
[COLOR="red"]HtcListItem2LineText txt_itemName;
HtcListItemTileImage itemImage;[/COLOR]
}
}
Layout - about_activity
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg_white">
<[COLOR="red"]com.htc.widget.HtcListView[/COLOR]
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/about_list"
android:background="@drawable/common_app_bkg"
/>
</LinearLayout>
Layout - about_htc_details
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<[COLOR="red"]com.htc.widget.HtcListItemSeparator [/COLOR]
android:id="@+id/Lseparator"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
[COLOR="red"]<com.htc.widget.HtcListItem
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<com.htc.widget.HtcListItemTileImage
android:id="@+id/list_item_img" />
<com.htc.widget.HtcListItem2LineText
android:id="@+id/list_item" />
</com.htc.widget.HtcListItem>[/COLOR]
</LinearLayout>
HTC ListView Example by xcesco89
Add HTC Sense Skin support.
In AndroidManifest add this line inside <application tag and before first <activity tag where you have your MainActivity
Code:
<application
[COLOR="Red"]allowSkinChange="true"[/COLOR]
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.yourpackage.name.MainActivity"
There will be Error in Manifest, says "Attribute is missing the Android namespace prefix"
It is fine, to fix it go to - Project -> Clean; Choose your Application and click Ok​
Add reference library to use full HTC app experience
Sense 6
Download this package - View attachment addon-htc_opensense_apis-htc-19.zip
Place the extracted folder to <location of android SDK>\android\sdk\add-ons\
Choose HTC OpenSense SDK 19 when you start building your application. Profit
Sense 5 and below
Refer to this, thanks to Jonny
Make sure HTCExtension lib is appear in your Eclipse project​
Use HTCPreference Activity
Htc Preference is the same as normal Preference but you need to follow some rules when you want to have this.
First in your Preference activity (for example you already have one) change PreferenceActivity to HtcPreferenceActivity.
import com.htc.preference.*;
In prefs.xml (or any other xml file you have your preferences in) make sure everything is using this way
This is original android way.
<PreferenceScreen> </PreferenceScreen>
This is Htc way
<com.htc.preference.HtcPreferenceScreen> </com.htc.preference.HtcPreferenceScreen>
So basically to every single item in preferences you need to add com.htc.preference.Htc****
Here is prefs.xml example
Code:
<?xml version="1.0" encoding="utf-8"?>
<[COLOR="Red"]com.htc.preference.Htc[/COLOR]PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<[COLOR="red"]com.htc.preference.Htc[/COLOR]CheckBoxPreference
android:title="@string/load_icons"
android:summary="@string/load_icons_summary"
android:defaultValue="true"
android:key="show_dialog">
</[COLOR="red"]com.htc.preference.Htc[/COLOR]CheckBoxPreference>
<[COLOR="red"]com.htc.preference.Htc[/COLOR]SwitchPreference
android:title="@string/load_skins"
android:summary="@string/load_skins_summary"
android:switchTextOn="@string/on"
android:switchTextOff="@string/off"
android:defaultValue="true"
android:key="skins_on_start">
</[COLOR="red"]com.htc.preference.Htc[/COLOR]SwitchPreference>
</[COLOR="red"]com.htc.preference.Htc[/COLOR]PreferenceScreen>
This is how Pref activity should be
Code:
package com.yourpackage.name;
import android.os.Bundle;
import android.view.View;
import com.htc.widget.ActionBarContainer;
import com.htc.widget.ActionBarExt;
import com.htc.widget.ActionBarText;
[COLOR="red"]import com.htc.preference.*;[/COLOR]
public class Settings extends [COLOR="red"]Htc[/COLOR]PreferenceActivity {
private ActionBarExt actionBarExt=null;
private ActionBarText actionBarText=null;
private ActionBarContainer actionBarContainer=null;
private void SetupActionBar() {
actionBarExt=new ActionBarExt(this,getActionBar());
actionBarExt.enableHTCLandscape(false);
actionBarContainer=actionBarExt.getCustomContainer();
actionBarText=new ActionBarText(this);
actionBarText.setPrimaryText(R.string.settings);
actionBarContainer.addCenterView(actionBarText);
actionBarContainer.setRightDividerEnabled(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
SetupActionBar();
}
}
If you cannot import com.htc.preference.*; (Eclipse will give you error) it means you dont have HtcExtension lib. Make sure you added it before doing this.
​
Great guide! HTC Dialog isn't hard, just the same as the normal dialog, but putting Htc before the dialog stuff, right?
Looking forward to the ListView guide!
MaartenXDA said:
Great guide! HTC Dialog isn't hard, just the same as the normal dialog, but putting Htc before the dialog stuff, right?
Looking forward to the ListView guide!
Click to expand...
Click to collapse
yep dialog ist that hard.. but still need to clarify )
Subscribed ! :good:
Hai So, how could I change the tab's image? Like the one in the DarkSense screenshot?
MaartenXDA said:
Hai So, how could I change the tab's image? Like the one in the DarkSense screenshot?
Click to expand...
Click to collapse
This is not image actually, it is skin support..
I was planning to write about it later ))
OK in manifest after <application tag add this line
allowSkinChange="true"
You will have error. Go to Project and perform a Clean . try and report back
Sent from my Galaxy Nexus using Tapatalk 2
Weird.. Cannot edit ..
So this line should be in the same pack where you have android icon and theme info before the first activity tag
Sent from my Galaxy Nexus using Tapatalk 2
mikrosmile said:
This is not image actually, it is skin support..
I was planning to write about it later ))
OK in manifest after <application tag add this line
allowSkinChange="true"
You will have error. Go to Project and perform a Clean . try and report back
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Thanks, works great!
Saw the dialog part, nice
Waiting for the listview guide c:
Sent from my awesome fridge
MaartenXDA said:
Saw the dialog part, nice
Waiting for the listview guide c:
Sent from my awesome fridge
Click to expand...
Click to collapse
add an HtcListView it's quite simple!
this works exactly as the android ListView
a simple example:
(as base i've used TabPlus4Demo a sample project in OpenSense SDK samples )
main.xml
HTML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.htc.widget.HtcListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
(Note that you need to use com.htc.widget.HtcListView instead of ListView )
the code:
Code:
public class SimpleTab extends Fragment {
public HtcListView lv;
[user=439709]@override[/user]
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(getArguments() != null) {
int resId = getArguments().getInt("LAYOUT");
if(resId != 0)
return inflater.inflate(resId, null);
}
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.main, container, false);
[B]//Find the view[/B]
lv = (HtcListView) rootView.findViewById(R.id.listView1);
[B]//create the list[/B]
List<String> list = new ArrayList<String>();
[B]//add some list Items ( if you want a custom text , just use list.add("blahblah")[/B]
for (int i =0; i<40; i++) {
list.add("Test"+i);
}
[B]//create the adapter[/B]
ArrayAdapter<?> adapter = new ArrayAdapter<String>(this.getActivity(),
android.R.layout.simple_list_item_1, list);
[B]//Set the adapter[/B]
lv.setAdapter(adapter);
[B]/*
create and set the Listener
you can also implement this in your activity with
"public class youractivity extends Activity implements OnItemClickListener"
then use lv.setOnItemClickListener(this)
*/[/B]
lv.setOnItemClickListener(new OnItemClickListener() {
[user=439709]@override[/user]
public void onItemClick(HtcAdapterView<?> arg0, View v,
int pos, long id) {
[B]//make a Toast Message that displays the Selected item NAME[/B]
Toast.makeText(v.getContext(),"pressed: "+ lv.getItemAtPosition(pos), Toast.LENGTH_SHORT).show();
[B]/*
if you want t perform something different for each item you can use the case statement
switch(pos){
case 0:
Toast.makeText(v.getContext(), "HI!", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(v.getContext(), "HELLO!", Toast.LENGTH_SHORT).show();
break;
[...]
case 39:
//do something
break;
*/[/B]
}
});
return rootView;
}
}
Result:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
please take a look at this snippet too! ======> LINK
Thanks, good to see you around here
EDIT: and, how could I change it to look like the real HTC listview? I mean with dividers and white background?
Sent from my awesome fridge
MaartenXDA said:
Thanks, good to see you around here
EDIT: and, how could I change it to look like the real HTC listview? I mean with dividers and white background?
Sent from my awesome fridge
Click to expand...
Click to collapse
this is not part of OpenSense SDK.. they wont open it. You need to create own framework..
this is actually part of HtcPreferenceActivity which you cant create in Eclipse without proper libs..
Other than that you can create similar png.9 image and make it looks like )
mikrosmile said:
this is not part of OpenSense SDK.. they wont open it. You need to create own framework..
this is actually part of HtcPreferenceActivity which you cant create in Eclipse without proper libs..
Click to expand...
Click to collapse
Couldn't dex2jar be used on HTCExtension.jar then adding HTCExtension to the build path?
Jonny said:
Couldn't dex2jar be used on HTCExtension.jar then adding HTCExtension to the build path?
Click to expand...
Click to collapse
i didnt try it..
MaartenXDA said:
Thanks, good to see you around here
EDIT: and, how could I change it to look like the real HTC listview? I mean with dividers and white background?
Sent from my awesome fridge
Click to expand...
Click to collapse
i think you can create a custom row layout, create a new custom adapter and set the content with your new adapter
Suggestion for the guide: Htc Preferences

{Q} Web View inside a fragment

I have a viewpager with four webview fragments. Im trying to get a GoBack Action to my WebView which is inside of a fragment. But i cant implement it right into my code here is the code of my webview in my fragments. I also can't seem to get a downloadListener to work either. Sorry I am kinda new to fragments and trying to understand how they work.
Code:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
public class Fragment1 extends Fragment {
private static final String WebSettings = null;
private WebView webView;
private Bundle webViewBundle;
[user=439709]@override[/user]
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.fragment_1,
container, false);
webView = (WebView) ll.findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setLoadWithOverviewMode(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
if (webViewBundle == null) {
try{
webView.loadUrl("http://www.google.com");
}catch (Exception e){
e.printStackTrace();}
} else {
webView.restoreState(webViewBundle);
}
return ll;
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
[user=439709]@override[/user]
public void onPause() {
super.onPause();
webViewBundle = new Bundle();
webView.saveState(webViewBundle);
}
}
dfuse06 said:
I have a viewpager with four webview fragments. Im trying to get a GoBack Action to my WebView which is inside of a fragment. But i cant implement it right into my code here is the code of my webview in my fragments. I also can't seem to get a downloadListener to work either. Sorry I am kinda new to fragments and trying to understand how they work.
Code:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
public class Fragment1 extends Fragment {
private static final String WebSettings = null;
private WebView webView;
private Bundle webViewBundle;
[user=439709]@override[/user]
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.fragment_1,
container, false);
webView = (WebView) ll.findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setLoadWithOverviewMode(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
if (webViewBundle == null) {
try{
webView.loadUrl("http://www.google.com");
}catch (Exception e){
e.printStackTrace();}
} else {
webView.restoreState(webViewBundle);
}
return ll;
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
[user=439709]@override[/user]
public void onPause() {
super.onPause();
webViewBundle = new Bundle();
webView.saveState(webViewBundle);
}
}
Click to expand...
Click to collapse
You will need to override the onKeyUp method in the Activity. Then search for the fragment there and call a method of your subclass of Fragment which you want to be executed when the back key is pressed.
nikwen said:
You will need to override the onKeyUp method in the Activity. Then search for the fragment there and call a method of your subclass of Fragment which you want to be executed when the back key is pressed.
Click to expand...
Click to collapse
So I can't actually do this inside the fragment?
Sent from my SCH-I535 using Tapatalk 2
dfuse06 said:
So I can't actually do this inside the fragment?
Sent from my SCH-I535 using Tapatalk 2
Click to expand...
Click to collapse
I do not think so.
nikwen said:
I do not think so.
Click to expand...
Click to collapse
That must be all my errors then.
Sent from my SCH-I535 using Tapatalk 2
nikwen said:
You will need to override the onKeyUp method in the Activity. Then search for the fragment there and call a method of your subclass of Fragment which you want to be executed when the back key is pressed.
Click to expand...
Click to collapse
could you post a example on how it should look. This is driving me nuts nothing is working
dfuse06 said:
could you post a example on how it should look. This is driving me nuts nothing is working
Click to expand...
Click to collapse
Google!!!
Check those:
http://stackoverflow.com/questions/12210906/fragment-activity-catch-onkeydown-and-use-in-fragment
http://stackoverflow.com/questions/10631425/android-webview-inside-fragment-how-to-add-goback
nikwen said:
Google!!!
Check those:
http://stackoverflow.com/questions/12210906/fragment-activity-catch-onkeydown-and-use-in-fragment
http://stackoverflow.com/questions/10631425/android-webview-inside-fragment-how-to-add-goback
Click to expand...
Click to collapse
lol!!! I have googled it. Looked on stackoverflow posted on stack
http://stackoverflow.com/questions/16379973/goback-and-download-listener-in-webview-fragment
tried all kinda codes I found from there and no luck!
dfuse06 said:
lol!!! I have googled it. Looked on stackoverflow posted on stack
http://stackoverflow.com/questions/16379973/goback-and-download-listener-in-webview-fragment
tried all kinda codes I found from there and no luck!
Click to expand...
Click to collapse
Post your code (or the important parts of it) so that we can find your errors.
Having the same issue
dfuse06 said:
lol!!! I have googled it. Looked on stackoverflow posted on stack
tried all kinda codes I found from there and no luck!
Click to expand...
Click to collapse
I'm having the same issue. Did you find resolution? If so, please post it.

Text input with DialogFragment

I am trying to get a value that user enters into a Dialog, using the recommended DialogFragment class for it, the Dialog constructs and runs fine, but I cannot return the value of the EditText parameter to the parent class, without get a Null pointer exception.
My DialogHost class, this constructs, returns and links the parent to its buttons.
Code:
package jo.app.co;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
public class DialogHost extends DialogFragment {
public interface NoticeDialogListener {
public void onDialogPositiveClick(DialogFragment dialog);
public void onDialogNegativeClick(DialogFragment dialog);
}
NoticeDialogListener mListener;
[user=439709]@override[/user]
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (NoticeDialogListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString());
}
}
[user=439709]@override[/user]
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_add, null))
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
[user=439709]@override[/user]
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogPositiveClick(DialogHost.this);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
DialogHost.this.getDialog().cancel();
}
});
return builder.create();
}
}
My MainActivity
Code:
package jo.app.co;
import android.app.DialogFragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.widget.EditText;
public class MainActivity extends FragmentActivity implements DialogHost.NoticeDialogListener {
[user=439709]@override[/user]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showNoticeDialog();
}
public void showNoticeDialog() {
DialogFragment dialog = new DialogHost();
dialog.show(getFragmentManager(), "DialogHost");
}
[user=439709]@override[/user]
public void onDialogPositiveClick(DialogFragment dialog) {
EditText myText = (EditText) findViewById(R.id.item_added);
try {
Log.d ("IN TRY", myText.getText().toString());
}
catch (Exception e) {
Log.e ("IN CATCH", e.toString());
}
}
[user=439709]@override[/user]
public void onDialogNegativeClick(DialogFragment dialog) {
Log.d ("INMAIN", "REACHED NEG");
}
}
This is my layout for the add item dialog.
Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:id="@+id/item_added"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="@string/hint_add_item" />
</LinearLayout>
It's because in your main activity you are trying to call findViewById:
swapnilraj said:
Code:
[user=439709]@override[/user]
public void onDialogPositiveClick(DialogFragment dialog) {
EditText myText = (EditText) findViewById(R.id.item_added);
try {
Log.d ("IN TRY", myText.getText().toString());
}
catch (Exception e) {
Log.e ("IN CATCH", e.toString());
}
}
Click to expand...
Click to collapse
This is not possible since the layout of the activity is not the one the dialog is using. There are multiple ways of doing this, for instance call findViewById in the dialog's onPositiveButtonListener and pass that value through your interface. It might be that you need to use the LayoutInflator in the onCreateDialog, set
LinearLayout linearl = (LinearLayout) inflater.inflate(...) and get the EditText from there. You then call setView(linearL) instead.
SimplicityApks said:
It's because in your main activity you are trying to call findViewById:
This is not possible since the layout of the activity is not the one the dialog is using. There are multiple ways of doing this, for instance call findViewById in the dialog's onPositiveButtonListener and pass that value through your interface. It might be that you need to use the LayoutInflator in the onCreateDialog, set
LinearLayout linearl = (LinearLayout) inflater.inflate(...) and get the EditText from there. You then call setView(linearL) instead.
Click to expand...
Click to collapse
I tried calling findViewById method in the onClick method in the Dialog class, but the function is not defined for a DialogInterface.onClickListner, I modified it to linearl method you told but I cannot get it to work either.
Could you make the changes in the 2 snippets above, it would be very helpful!
You'll have to setup listeners fo this and pass the string or whetever you want to pass to back to the activity which in its turn can handle it (do it by itself or pass this to another fragement).
Although not so much votes (0) the last answer here on stackoverflow has exeactly what you need.

App development

Hello Guys,
I want to develop a app which will display a simple html page, i new to andriod coding , so please help me out in developing this app
Requirement : when i open my app it will just display a HTML page .
actually i want to stream my raspberrypi video from this page .
i am able to do that via browser and wanted to build a coustm app for the same.
P.S sorry about the language.
vinodmadhu6 said:
Hello Guys,
I want to develop a app which will display a simple html page, i new to andriod coding , so please help me out in developing this app
Requirement : when i open my app it will just display a HTML page .
actually i want to stream my raspberrypi video from this page .
i am able to do that via browser and wanted to build a coustm app for the same.
P.S sorry about the language.
Click to expand...
Click to collapse
You can go many routes to do this - Java and a WebView would be the most obvious way, but it may be easier to look at using Cordova or Phonegap as it's a lot easier to pick up if you have any existing web skills.
Very Easy
vinodmadhu6 said:
Hello Guys,
I want to develop a app which will display a simple html page, i new to andriod coding , so please help me out in developing this app
Requirement : when i open my app it will just display a HTML page .
actually i want to stream my raspberrypi video from this page .
i am able to do that via browser and wanted to build a coustm app for the same.
P.S sorry about the language.
Click to expand...
Click to collapse
To simply load and display a webpage, add this Activity to your code:
WebpageActivity.java
Code:
public class WebpageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_webpage);
WebView wv = (WebView) findViewById(R.id.my_webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.mywebpage.com");
}
}
my_webpage.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/my_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Add permissions to manifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Click to expand...
Click to collapse
As for streaming a video, you may need to use JavaScript. I do not have much experience with web, but this should get you started in the right direction
my_webpage cannot be resolved or is not a field
I am unable to resolve this error
Main activity.java
Code:
package com.example.xda;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class WebpageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_webpage);
WebView wv = (WebView) findViewById(R.id.my_webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.mywebpage.com");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/my_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Game Development
Hello
I want to integrade amazon game cricle and amazon ads with google ads for my game
tried all the tutorials
there is not error with google skd but when i add the amazon sdk it start giving errors
vinodmadhu6 said:
my_webpage cannot be resolved or is not a field
I am unable to resolve this error
Main activity.java
Code:
package com.example.xda;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class WebpageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_webpage);
WebView wv = (WebView) findViewById(R.id.my_webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.mywebpage.com");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Activity_main.xml
Click to expand...
Click to collapse
I'm sorry, there was some miscommunication...
You need to find your webView by Id in xml. Then set the data for it to load. Do this in your onCreate method of your Activity. I was showing an example of what your whole class could look like, not add my example to existing code. Sorry for misunderstanding.
Ex:
Code:
package com.example.xda;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// find webview by Id in xml
WebView myWebView = (WebView) findViewById(R.id.[I]your_webview_here[/I]);
// if you are going to use JavaScript, set enabled in webview
myWebView.getSettings().setJavaScriptEnabled(true);
//then specify data for webview to load
myWebView.loadUrl("http://www.xda-developers.com");
}
Do not add this to existing code. This is an example of an Activity to load data in webview.
I hope this clarifies our misunderstanding, good luck to you and happy coding!
Noted to self thrice via tapatalk
It seems like you are totally new to the android framework. It would be good if you can read up on the basics and familiarize yourself on the basics before pasting code snippets into your project.
Yeah i am a newbie , Can any one please provide some links for starting with basics

Categories

Resources