bcMaterial - A Community Material wrapper - open source

DonManfred

Expert
Licensed User
Longtime User

ernschd

Active Member
Licensed User
Longtime User
By the way: after updating to Android Support Library 23.1 the errors are gone. Everything is working fine :)
 

DonManfred

Expert
Licensed User
Longtime User
Exists some material or tutorials that I can use to go forward as staring point for work in your project?
You can look at the sources. Each Object has its own wrapper-class.
You can search the forum about infos about creating libraries for b4a. MyFirstLib for ex.
You can browse the Developerwustions forum to find more useful infos.
 

Reids

Member
Licensed User
Longtime User
For some reason I Couldn't get this example run,
part of log error show


B4X:
** Activity (main) Create, isFirst = true **
Class not found: de.donmanfred.widget.bcTimePicker, trying: de.donmanfred.MaterialEx1.bcTimePicker
java.lang.RuntimeException: java.lang.ClassNotFoundException: de.donmanfred.MaterialEx1.bcTimePicker
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:166)
    at anywheresoftware.b4a.objects.ActivityWrapper.LoadLayout(ActivityWrapper.java:208)
    at de.donmanfred.MaterialEx1.main._activity_create(main.java:334)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:187)
    at de.donmanfred.MaterialEx1.main.afterFirstLayout(main.java:100)
    at de.donmanfred.MaterialEx1.main.access$100(main.java:17)
    at de.donmanfred.MaterialEx1.main$WaitForLayout.run(main.java:78)


    at android.os.Handler.handleCallback(Handler.java:730)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:5419)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: de.donmanfred.MaterialEx1.bcTimePicker
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:204)
    at java.lang.Class.forName(Class.java:169)
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayoutHelper(LayoutBuilder.java:377)
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayoutHelper(LayoutBuilder.java:425)
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:144)
    ... 17 more


PS :
1.I already update my sdk support to version 2.3.1.1 (latest)
2.I also checked that PATH of any resources is match
3.I already check that I compile with version 23 android.jar

but while launching the apps, it error like this, I something I missing?
 

Attachments

  • Screenshot_2015-11-13-11-43-57.png
    Screenshot_2015-11-13-11-43-57.png
    76.1 KB · Views: 222

ernschd

Active Member
Licensed User
Longtime User
For some reason I Couldn't get this example run,
part of log error show...

I've got sometimes the same error. I opened the designer and looked at the TimePicker-View (tPick). I my case the CustomType Property was empty. After choosing the right Type (bcTimePicker), the error was gone.
 

Reids

Member
Licensed User
Longtime User
I've got sometimes the same error. I opened the designer and looked at the TimePicker-View (tPick). I my case the CustomType Property was empty. After choosing the right Type (bcTimePicker), the error was gone.

I just remember about I use low version of B4A IDE instead new IDE used by DonMan as zip example, I look at designer and it show funny thing, I need to reselect right type as you say, and now it worked!!
Thank You!
 

Attachments

  • funny.PNG
    funny.PNG
    3.5 KB · Views: 220

Jaames

Active Member
Licensed User
Longtime User
It does not work with latest android.jar (23) and latest android-support-v7-appcompat.jar (23.1.1)
Android sdk folder and resource folder are properly configured.

What could be the cause?
B4X:
LogCat connected to: 42f7ec145b03bfad
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.donmanfred.MaterialEx1/de.donmanfred.MaterialEx1.main}: android.view.InflateException: Binary XML file line #6: Error inflating class com.android.internal.widget.ActionBarView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2436)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
    at android.app.ActivityThread.access$900(ActivityThread.java:170)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:146)
    at android.app.ActivityThread.main(ActivityThread.java:5635)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class com.android.internal.widget.ActionBarView
    at android.view.LayoutInflater.createView(LayoutInflater.java:626)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
    at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
    at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
    at android.view.LayoutInflater.inflate(Native Method)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
    at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3336)
    at com.android.internal.policy.impl.MultiPhoneWindow.generateLayout(MultiPhoneWindow.java:405)
    at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3404)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:367)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361)
    at android.app.Activity.setContentView(Activity.java:2077)
    at de.donmanfred.MaterialEx1.main.onCreate(main.java:59)
    at android.app.Activity.performCreate(Activity.java:5580)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400)
    ... 12 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at android.view.LayoutInflater.createView(LayoutInflater.java:600)
    ... 31 more
Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class android.widget.TextView
    at android.view.LayoutInflater.createView(LayoutInflater.java:626)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
    at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
    at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
    at android.view.LayoutInflater.inflate(Native Method)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
    at com.android.internal.widget.ActionBarView.initTitle(ActionBarView.java:1211)
    at com.android.internal.widget.ActionBarView.setDisplayOptions(ActionBarView.java:993)
    at com.android.internal.widget.ActionBarView.<init>(ActionBarView.java:399)
    ... 34 more
Caused b
Message longer than Log limit (4000). Message was truncated.
 

Jaames

Active Member
Licensed User
Longtime User
Shame on me, I would swear that I've done that, probably I forgot to save Layout after setting the Custom Type.
Thanks for (re)pointing me in right direction :D . Peace!
 

wimpie3

Well-Known Member
Licensed User
Longtime User
Are you still working on this project? It's a shame that so many libraries are started but never finished... I know it's not easy to find spare time, but for developers using the libraries posted here this is very frustrating since you always discover that the things that are missing are the things you need...
 

klarsys

Active Member
Licensed User
Longtime User
In my case, designer does not show any 'Custom Type' available. The code compiles, starts and then crashes.

upload_2016-3-18_21-23-3.png
 

ArminKH

Well-Known Member
@DonManfred
it seems the viewes of this great project are stylable just by xml files for example CheckBox has not any functions to change states color like Enabled.Disabled,Checked color at run time
any way i tried to change it by get object of wrapper but without success
as u are an experienced wrapper have u any idea about this?
this methods don't works
B4X:
        this.getObject().setBackgroundTintList(colorStateList);
        this.getObject().setButtonTintList(colorStateList);
        this.getObject().setCompoundDrawableTintList(colorStateList);

B4X:
    public void SetStatesColor(int CheckedColor,int EnabledColor,int DisabledColor){
        int[][] States = new int[3][];
            States[0]  = new int[]{16842912} ;    //Checked
            States[1]  = new int[]{16842910} ;    //Enabled
            States[2]  = new int[]{-16842910};    //Disabled
           
        int[] Color  = new int[3];
            Color[0] = CheckedColor ;
            Color[1] = EnabledColor ;
            Color[2] = DisabledColor;
           
        ColorStateList colorStateList = new ColorStateList(States,Color);            
        this.getObject().setBackgroundTintList(colorStateList);
    }
thank u
 
Last edited:

MAGAREY

Member
Licensed User
Longtime User
hi @DonManfred , i tried to modify the source that you provide, to make it work the autocomplete function in the bcEditText without success, any advice?
 

Stern0m1

Member
Licensed User
Im having an issue adding the necessary resources.
I tried adding:
B4X:
#AdditionalRes: $AndroidSDK$\extras/android/m2repository/com/android/support/appcompat-v7
but I get:
B4X:
B4A version: 6.50
Parsing code.    (0.00s)
Compiling code.    (0.04s)
Compiling layouts code.    (0.00s)
Organizing libraries.    (0.00s)
Generating R file.    Error
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 18.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 19.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 19.0.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 19.1.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 20.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 21.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 21.0.2
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 21.0.3
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 22.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 22.1.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 22.1.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 22.2.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 22.2.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.0.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.1.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.1.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.2.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.2.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.3.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 23.4.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.0.0-alpha1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.0.0-alpha2
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.0.0-beta1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.1.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.1.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.2.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 24.2.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 25.0.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 25.0.1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 25.1.0
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 maven-metadata.xml
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 maven-metadata.xml.md5
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 maven-metadata.xml.sha1
invalid resource directory name: C:\Android\tools\..\extras\android\m2repository\com\android\support\appcompat-v7 test

If i dont add anything I get:
B4X:
** Service (starter) Create **
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 336)
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:166)
    at anywheresoftware.b4a.objects.ActivityWrapper.LoadLayout(ActivityWrapper.java:209)
    at b4a.example.main._activity_create(main.java:336)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
    at b4a.example.main.afterFirstLayout(main.java:102)
    at b4a.example.main.access$000(main.java:17)
    at b4a.example.main$WaitForLayout.run(main.java:80)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:7230)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.objects.CustomViewWrapper.AfterDesignerScript(CustomViewWrapper.java:64)
    at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:158)
    ... 14 more
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
    at android.content.res.Resources.getValue(Resources.java:2558)
    at android.content.res.Resources.getDimensionPixelOffset(Resources.java:1845)
    at com.rey.material.widget.TimePicker.applyStyle(TimePicker.java:184)
    at com.rey.material.widget.TimePicker.init(TimePicker.java:162)
    at com.rey.material.widget.TimePicker.<init>(TimePicker.java:134)
    at b4a.community.donmanfred.widget.bcTimePicker._initialize(bcTimePicker.java:46)
    ... 17 more
** Activity (main) Pause, UserClosed = false **

I dont really know what im doing with these resources. If someone could help out would be greatly appreciated.
A tutorial for us dummies would be great!:)
Thanks
 
Top