ToolBar wird nicht gefunden - Benötige es aber für Material Theme? Was tun

  • Antworten:10
Lukas R.
  • Forum-Beiträge: 180

26.11.2014, 13:58:16 via Website

Hallo ich programmiere in C# (Xamarin.Android);
Da der Code sich aber fast nicht mit Java unterscheidet könnt Ihr mir sicher helfen.
Also ich wollte ein Material Theme in meiner App einbauen und ich habe auch alles gemacht wie in diesem http://developer.xamarin.com/guides/android/platform_features/android_l/material_theme/
Tutorial beschrieben ist.

Doch bei meiner App kommen schon bei der OnCreate 2 Fehler:
1. Fehler "The type or namespace name Toolbar could not be found (are you missing a using directive or an assembly reference?)`

  1. Fehler "The name SetActionBar does not exist in the current context"`

Hier mal die MainActivity:

namespace HK_EDV
{
    [Activity(Label = "HK-EDV", MainLauncher = true, Icon = "@drawable/ic_launcher")]
    public class MainActivity : Activity
    {

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            var toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
            SetActionBar(toolbar);
            ActionBar.Title = "HK-EDV";

        }


}

}

Hier das toolbar.axml (layout):

<?xml version="1.0" encoding="utf-8"?>
<Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/actionBarSize"
    android:background="?android:attr/color"
    android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar"
    android:popupTheme="@android:style/ThemeOverlay.Material.Light" />

und hier noch der style.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="Hkedvtheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
      <item name="android:windowNoTitle">true</item>
      <item name="android:windowActionBar">false</item>
      <item name="android:colorPrimary">@color/my_green</item>
      <item name="android:colorAccent">@color/my_green</item>
      <item name="android:textColorPrimary">@color/my_white</item>
      <item name="android:windowBackground">@color/my_white</item>
      <item name="android:navigationBarColor">@color/my_green</item>
      <item name="android:statusBarColor">@color/my_green</item>
    </style>

</resources>

Ich hoffe euch fällt iwas auf oder ein an was das liegen könnte!
PS: Android SDK auf dem neuesten Stand
Visual Studio auf dem neuesten Stand

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.11.2014, 14:12:10 via App

Da die Toolbar nicht gefunden wird, import vlt vergessen oder ggf. Lib nicht richtig eingebunden?
Ist denn die Toolbar ein standart Xamarin Android Objekt (in der normalen SDK) enthalten oder ist das Objekt von extern?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Lukas R.
  • Forum-Beiträge: 180

26.11.2014, 14:15:06 via Website

eben dass weis ich nicht.
ich dachte mir auch schon dass man wahrscheinlich irgend eine lib einbinden muss
doch mir war das komisch da ich 3 tutorial angesehen habe und nirgens iwas von import einer lib oder überhaupt einer import gestanden ist.
dadurch dachte ich mir dass wenn man das android sdk auf den aktuellsten stand hat dass die toolbar dadurch ein standart xamarin android objekt ist.

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.11.2014, 14:20:59 via App

Gibts nicht ein ActionBar Objekt, dass du per Activity#getActionBar() bekommst?
Dieses Objekt könntest du ja auch bearbeiten. Zudrm guibt es glaube ich möglichkeiten die ActionBar mit der XML (manifest) für das Komplette Projekt ins Material Design bekommen.
Woher nimmst du überhaupt die Info das es ein Toolbar Objekt sein muss?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Lukas R.
  • Forum-Beiträge: 180

27.11.2014, 09:03:22 via App

Soweit ich das weis kann man es nicht mit getactionbar bearbeiten dass wird in keinem tutorial beschrieben

dass einzige dass in den tutorials so beschrieben wird ist so wie ich es gemacht habe

soweit ich weis muss man zuerst eine toolbar als xml datei erstellen dann kann man die toolbar auch in der mainactivity bearbeiten .... jedoch findet es die toolbar nicht in meiner mainactivity

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

27.11.2014, 10:21:23 via Website

Support Lib V4 ab Version 21 hat diese, einfach in das build.gradle eintragen

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Lukas R.
  • Forum-Beiträge: 180

27.11.2014, 10:35:11 via Website

OK danke
1ne Frage habe ich noch:

Wie schafft es Google Play dass das Material Style auch auf Android 4.1+ läuft.
Wenn man sich das Update vom PlayStore ansieht sieht man es ja.
Normalerweise wird das Material Theme doch nur ab Android 5.0 supportet.
Doch auf meinem 2. Handy mit Android 4.2.2 läuft der Playstore auch mit dem Material Design.
Gibt es dazu ein Tutorial?

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

27.11.2014, 11:08:03 via Website

Das ist der Job der Support Lib, ab V21 brauchst du dich nicht drum kümmern. Es geht nicht alles, aber eine Toolbar hast du, wie diese ganzen ripple Effekte unter < API 21 laufen kann ich dir auch nicht sagen da Ich noch keine Zeit hatte mich damit genauer auseinander zu setzen.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Lukas R.
  • Forum-Beiträge: 180

27.11.2014, 12:03:31 via Website

Ok also meinst du damit dass wenn ich die Support Lib V4 einbinde, ich die Toolbar auch unter 5.0.0 verwenden kann? Und gewisse Funktionen dann halt erst ab 5.0.0
Denn mir geht es nur darum dass ich dass Material Design auch unter Android 5.0.0 verwenden kann wie im Playstore!

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Lukas R.
  • Forum-Beiträge: 180

27.11.2014, 12:21:50 via Website

https://developer.android.com/tools/support-library/features.html
hab hier mal nachgesehen hier steht dass das Material Design in Support v7 Lib eingebunden ist also muss ich diese Lib ins Projekt hinzufügen dann würde es die Toolbar eigentlich erkennen müssen und somit müsste ich die Toolbar auch unter Android 5.0.0 verwenden können. Oder?

— geändert am 27.11.2014, 12:37:07

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Lukas R.
  • Forum-Beiträge: 180

27.11.2014, 13:37:05 via Website

Am besten wär wenn jemand ein gutes Sample oder ein Tutorial findet denn ich bin unfündig...

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten