Hi XDeveloper,
vielleicht geht es mit einer GridView auch aber ich würde ein RelativeLayout wählen.
mfg Titus
Hi XDeveloper,
vielleicht geht es mit einer GridView auch aber ich würde ein RelativeLayout wählen.
mfg Titus
Hi 3ncrypt0,
seit der SDk Version 6 unterstützt Admob Mediation.Das Verfahren ermöglich dir ohne großen Aufwand andere Werbenetzwerke in deine Anwendung ein zubinden. Es ist vergleichbar mit Adwhirl.
Was ist AdMob Ad Network Mediation?https://support.google.com/admob/bin/answer.py?hl=de&answer=2413211
ok nun zu Madvertising.
so nutzte ich beide Netzwerke:
public class Main extends Activity implements MadvertiseViewCallbackListener{
private MadvertiseTracker mTracker;
private MadvertiseView mMadView;
//Google Admob
private AdView admView = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
admView = (AdView)findViewById(R.id.admobMain);
// set gender and age of your user.
MadvertiseView.setAge("20-50");
MadvertiseView.setGender(MadvertiseView.GENDER_MALE);
// set the callback listener, to receive a message when an ad was loaded
mMadView = (MadvertiseView) findViewById(R.id.madadMain);
mMadView.setMadvertiseViewCallbackListener(this);
// Retrieve a new instance of the a MadvertiseTracker
mTracker = MadvertiseTracker.getInstance(this);
// Report the application's start.
mTracker.reportLaunch();
}
/**
* Notifies the listener on success or failure
*
* @param succeed true, if an ad could be loading, else false
* @param madView specified view
*/
public void onLoaded(final boolean succeed, final MadvertiseView madView) {
/*
Da Madvertise mehr Geld bring als Admob soll wenn möglich die Werbung von denen angezeigt werden
*/
if (succeed) {
if ( admView.getVisibility() == View.VISIBLE) {
admView.setVisibility(View.GONE);
}
madView.setVisibility(View.VISIBLE);
} else {
// ad could not be loaded
if ( admView.getVisibility() == View.GONE) {
admView.setVisibility(View.VISIBLE);
}
madView.setVisibility(View.GONE);
}
}
@Override
public void onError(final Exception exception) {
// This method is most times called when there is a
// SocketTimeoutException.
// Do something with the exception
}
@Override
public void onIllegalHttpStatusCode(final int statusCode, final String message) {
// called when the madvertise-server did not answer with a HTTP-okay
// statuscode (200).
}
@Override
public void onAdClicked() {
// stop loading new ads and "remove" the view from the layout
mMadView.setFetchingAdsEnabled(false);
mMadView.setVisibility(View.GONE);
}
@Override
public void onApplicationPause() {
// called when a rich media ad is expanded. Should then call onPause().
this.onPause();
}
@Override
public void onApplicationResume() {
// called when a rich media ad is close. Should then call onResume().
this.onResume();
}
@Override
protected void onStart() {
super.onStart();
if(admView != null) {
admView.loadAd(new AdRequest());
}
// Report that the application becomes active
mTracker.reportActive();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (admView != null) {
admView.destroy();
}
// Report that the application is being ended
mTracker.reportStop();
}
@Override
protected void onStop() {
super.onStop();
if (admView != null) {
admView.stopLoading();
}
// Report that the application becomes inactive
mTracker.reportInactive();
}
}
Alles anzeigen
Werbung View in der XML:
<FrameLayout
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<com.google.ads.AdView
android:id="@+id/admobMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId=""
ads:testDevices="TEST_EMULATOR"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>
<de.madvertise.android.sdk.MadvertiseView
android:id="@+id/madadMain"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
mad:backgroundColor="#555"
mad:textColor="#FF1F1F"
mad:bannerType="mma"
mad:animation="fade"
mad:textSize="20"
mad:isTestMode="true"
mad:deliverOnlyText="false"
android:visibility="gone"
/>
</FrameLayout>
Alles anzeigen
Ist nicht der beste Code aber es läuft. Solltest du eine bessere Implementierung findest wär es nett wenn du sie hier posten würdest.
Zwecks Werbung von Admob auf Android 2.3 also ich hab damit keine Problem genauso wie bekannte von mir und die haben ein Samsung Galaxy Ace.
Ok nun hab ich dir geholfen vielleicht kannst du mir ja auch Helfen.
Weisst du zufällig ab welchen Betrag Admob auszahl? Also Paypal oder Überweisung?
Mfg Titus
Hi mbfan,
die Funktion private void setlistener() {...} kannst du rausnehmen dafür fügst du jedem Button der XML das Attribute android:onclick="FunktionName" hinzu.
bei der List ist es kein onClick sondern ein setOnItemClickListener.
liste.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
}} {
in der Funktion loaditems() solltest du dir überlegen ob du nicht einen anderen Adapter nutzt.
Geht das eigentlich mit den beiden Adaptern?
ZitatAchja - Debuglog habe ich leider nicht, da mein Emulator nicht richtig funktioniert und ich deswegen direkt auf dem Handy testen muss.
also wenn du dein Gerät mit dem Rechner verbindest und dann als Build das Gerät auswählst bekommst du in der LogCat deinen Fehler angezeigt.
Mfg Titus
Hi Thunderdome,
als Ergänzung zu block_ seinen Post.
Für den internen Speicherbereich benötigst du kein Berechtigung die von dir benutzten sind für den externen Speicher (Sd Card).
mfg Titus
Hi XshapeX,
gibt es einen bestimmten Grund warum das mi Bundle und savedInstanceState machst?
mfg Titus
P.s. der Bedankomat ist der "Bedanken"-Button am ende deines Posts.
Hi Thunderdome,
mmhh ich würde mal vermuten das url.openStream() nicht richtig geht ist.
Url wurde auch richtig initialisiert?
hast Berechtigung Internet gesetzt? ( muss nur gesetzt werden wenn du auf eine externe Website zu greifst)
Welche Android Version nutzt du?
Mfg Titus
Hi dude,
für einen einfachen Rechner kannst du dir ja mal das hier ansehen: Taschenrechner Tut - Logik (ist nicht perfekt aber für einfache Sachen reicht es)
für alles andere wären vielleicht Reguläre Ausdrücke der richtige Ansatz.
Das hier sieht zwar ein bissel kompliziert aus könnte aber vielleicht auch weiterhelfen Backus Naur Form
mfg Titus
Hi Stefan1381,
Zitatwo soll da die id des edittext feldes hin?
nirgends.
Du musst erst die Editext View abfragen und dann den Inhalt an den Intent übergebn
mfg Titus
Hi MOST2K2,
Herzlich Willkommen im Forum
Mfg Titus
Hi Berlioz,
also die einfachste Eingabe Möglickeit die es gibt ist die EditText View.
Entweder du deklarierst sie in deiner Layout XMl oder erzeugst sie Dynamisch innerhalb deiner Activity.
XML:
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
Sie jetzt nicht so schön aus aber für alles andere wird es dann ein wenig komplizierter.
Mfg Titus
Hi Zulu23,
der Unterschied zwischen den beiden ist ganz einfach das Google Target enthält zum normalen Android noch die Bibliotheken zu verschieden Google Diensten. Und es könnte sein das das Google Target nicht unter der gleichen Open Source Lizenz läuft wie das normal Android.
Wenn du zum Beispiel Google Maps in deiner Anwendung nutzten möchtest musst du das Google Target verwenden.
Mfg Titus
Hi KlaRa54,
ZitatWenn Du im Main - Thread auf die Ausführung wartest, dann bringt der Start eines Extra - Threads eigentlich nichts. Um Deinen Code übersichtlicher zu gestalten lege jeweils eine Extra - Klasse an und starte diese.
Das stimmt so nicht ganz.
Alles was sich innerhalb des Main-Thread ( oder auch UI-Thread) befindet wird hintereinander abgearbeitet.
Sollte jetzt irgend etwas dabei sein was länger dauert (Datenbank Abfrage, Website Aufruf, Berechnungen etc) KANN es dazu kommen das der UI-Thread warten muss. In der Regel macht er das nicht länger als 3s geht es dann nicht weiter blockiert er und eine Exception wird abgefeuert. Der User bekommt dann an eine Mitteilung angezeigt die ihn fragt ob er entweder warten möchten oder die App beenden. In einigen Fällen schmiert die App auch ganz ab .
@danielb: Hast du dir mal die Klasse AsynTask angesehen?
Mfg TItus
Hi NemesisFS,
auf was wendest du den das onClick an? Auf das ganze Item-Layout oder auf eine bestimmte View?
Mfg Titus
Hi dude,
ah ok da war ich wohl ein bissel zu schnell.
mmhh schau dir mal dieses Tutorial an.
In ihm wird gezeigt wie du einen simplen Taschenrechner in Android programmierst.
Mfg Titus
Hi Community,
vielleicht für den ein oder anderen ganz interessant:
Die Website http://xyologic.com/ bietet die Möglichkeit in den verschiedenen offiziellen App Store der großen Marken (Android,Apple,WP) zu suchen.
Mfg TItus
Hi dude,
ok und was ist jetzt dein Problem bzw. dies Sache an der du scheiterst?
mfg Titus
Hi block_,
der Android Weekly Newsletter ist ganz nett. Ist zwar im Augenblick noch recht überschaubar aber vielleicht wird ja noch was richtiges draus.
mmhh im Zeitungsbereich war der Mobile Developer richtig gut leider haben sie den vor zwei Monaten mit einer Web Developer Zeitung zusammengelegt.
Ich persönlich fand das jetzt nicht so toll aber das liegt wohl eher daran das ich kein Webentwickler bin. Von den Java Mag Machern gibt es auch ne Android Zeitung die soll auch ganz gut sein, hab ich aber bis jetzt noch nicht ausprobiert.
Mfg Titus
Hi Lisa,
als Ergänzung zu matthias:
In diesen Tutorial wird beschrieben wie man einen RSS-Feed(XML) vom Server lädt und ihn parst.
Simpler RSS Reader
Wenn du das durchgearbeitet hast, ist schon mal ein Teil der Kommunikation zwischen Client und Server erledigt.
(In deinem Fall würde das bedeuten das die möglichen Inserate dem User in einer Liste angezeigt werden.)
Was dann noch fällt wäre das Versenden der Daten vom Client an den Server.(also das Bearbeiten von Inseraten)
Zu empfehlen wäre hier ein POST-Request.
Vogella Post-Request
oder diese Basic HTTP Lib
Mfg Titus