我有一个嵌套视图V的自定义布局,如下所示:LinearLayout L1 ---> LinearLayout L2 ---> View V.
我有一个为V注册的OnTouchListener.在触摸事件中,我需要获取相对于视图V边缘的触摸事件的坐标.
event.getX()和event.getY()返回的值相对于?我用google搜索并看到相互矛盾的语句,有人说这些值已经相对于视图V的边缘,但是其他人说我需要从event.getX()和event.getY()中减去视图V的边缘坐标来得到相对坐标.
谢谢你的帮助.
如果我有一个类删除自己,它的内部方法应该停止执行吗?我有一个B类告诉A类从A的ArrayList中删除B. 我相当肯定B只存在于A的ArrayList中,所以当我删除它时,它应该被删除,对吧?(注意:我已经包含了一个Serializable实现,以防万一与VM如何处理我的类有关,但我没有在这里写read-和writeObject方法.我怀疑它与它有什么关系这个问题虽然.)
public class A implements Serializable, B_Listener {
ArrayList<B> bArray;
public A() {
bArray = new ArrayList<SomeObject>();
bArray.add(new B(bArray.size(), this));
}
@Override
public void deleteAtIndex(int index) {
bArray.remove(index);
}
}
public class B implements Serializable {
B_Listener listener;
int index;
public B(B_Listener listener, int index) {
this.listener = listener;
this.index = index;
}
//This is called at some point in a B's lifetime.
private void selfDestruct() {
listener.deleteAtIndex(index);
Log.w("B.class", "Should this not output? It does.");
}
}
public interface …Run Code Online (Sandbox Code Playgroud) 我有这个AutoCompleteTextView:
AutoCompleteTextView a = new AutoCompleteTextView(this);
Run Code Online (Sandbox Code Playgroud)
我需要将completionThreshold标志值设置为1,我想学习使用java代码.我搜索谷歌和stackoverflow,我没有找到方法.
我只需要这样做: android:completionThreshold="1"使用java代码.
如何才能做到这一点?
android autocompletetextview android-layout layoutparams android-view
首先,我创建了一个自定义视图,通过覆盖该onDraw()方法来吸引自己.事实证明这是不切实际的,因为我需要创建大量的视图.所以我创建了一个自定义的ViewGroup,它使用该onLayout()方法绘制每个子节点.
我在android文档中读到了子视图应该实现一个layout()方法.但是我创建的子视图使用onDraw方法绘制自己.我该怎么处理?我应该摆脱这种onDraw()方法吗?任何人都可以举例说明该layout()方法的工作原理以及我应该如何将我的onDraw()方法"转换" 为layout()方法?
我目前的onDraw()方法如下:
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//Draw Border.
canvas.drawRect(mCellBounds, mBorderPaint);
//Draw Background.
canvas.drawRect(mBackgroundBounds, mBackGroundPaint);
//Draw Value if not 0.
if(Value != 0)
canvas.drawText(Integer.toString(Value), ValueX, ValueY, mNumberPaint);
//Draw Notes if Value == 0.
else
{
for(int i = 0 ; i < 9 ; i++)
if(NoteList[i])
canvas.drawText(Integer.toString(i), NoteX + ((i%3) * NoteMeasureX), NoteY + ((i/3) * NoteMeasureY), mNotePaint);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个自定义视图 - 手指画,我遇到此错误的麻烦,我不知道如何解决它.谁能告诉我有什么问题?
logcat的:
08-04 08:34:01.171: E/AndroidRuntime(15664): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.boenka.mk/com.boenka.mk.Draw}: android.view.InflateException: Binary XML file line #9: Error inflating class com.boenka.mk.DrawPanel
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.app.ActivityThread.access$600(ActivityThread.java:123)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.os.Handler.dispatchMessage(Handler.java:99)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.os.Looper.loop(Looper.java:137)
08-04 08:34:01.171: E/AndroidRuntime(15664): at android.app.ActivityThread.main(ActivityThread.java:4424)
08-04 08:34:01.171: E/AndroidRuntime(15664): at java.lang.reflect.Method.invokeNative(Native Method)
08-04 08:34:01.171: E/AndroidRuntime(15664): at java.lang.reflect.Method.invoke(Method.java:511)
08-04 08:34:01.171: E/AndroidRuntime(15664): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-04 08:34:01.171: E/AndroidRuntime(15664): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-04 …Run Code Online (Sandbox Code Playgroud) android android-custom-view android-inflate android-canvas android-view
我知道我可以通过以下方式更改按钮上文本的颜色:
button.setTextColor(getApplication().getResources().getColor(R.color.red)); //TAKE DEFAULT COLOR
Run Code Online (Sandbox Code Playgroud)
要么
button.setTextColor(0xff0000); //SET CUSTOM COLOR
Run Code Online (Sandbox Code Playgroud)
要么
button.setTextColor(Color.parseColor("#ff0000"));
Run Code Online (Sandbox Code Playgroud)
但是我想为文本使用两种颜色:例如,假设我的按钮具有以下文本:"Click Here",我希望"Click"部分显示为红色,"Here"部分显示为蓝色.
这可能吗 ?
假设我有一个活动,它包含一个TextView.我可以将TextView初始化为成员变量或局部变量.这些与初始化之间有任何记忆明智的区别吗?
示例: 具有本地视图引用的活动:
public class MainActivity extends Activity{
@OVerride
public void onCreate(Bundle b){
TextView textView = (TextView)findViewById(R.id.my_text_view_id);
}
}
Run Code Online (Sandbox Code Playgroud)
成员视图参考的活动:
public class MainActivity extends Activity{
TextView mTextView;
@OVerride
public void onCreate(Bundle b){
mTextView = (TextView)findViewById(R.id.my_text_view_id);
}
}
Run Code Online (Sandbox Code Playgroud) memory android local-variables member-variables android-view
在我的项目中,我通过ViewPager创建我的tabBar,如下所示:
MainActivity.java
mViewPager = (ViewPager) findViewById(R.id.content_main_viewpager);
if ( mViewPager != null ) {
final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment( new LandingSearch(), "" );
adapter.addFragment( new LandingWiki(), "" );
adapter.addFragment( new LandingForum(), "" );
mViewPager.setAdapter(adapter);
mViewPager.setOffscreenPageLimit( 3 );
final TabLayout tabs = (TabLayout) findViewById(R.id.content_main_tabs);
if ( tabs != null ) {
tabs.post(new Runnable() {
@Override
public void run() {
tabs.setupWithViewPager( mViewPager );
tabs.getTabAt(0).setIcon(R.drawable.ic_tab_search);
tabs.getTabAt(1).setIcon(R.drawable.ic_tab_favorite);
tabs.getTabAt(2).setIcon(R.drawable.ic_tab_forum);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
app_bar_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" …Run Code Online (Sandbox Code Playgroud) android android-fragments android-view android-viewpager android-tablayout
这就是我要实现的
我尝试过的是,在单击每个项目时将布局动态添加到recycleView。但是我认为这不是一种有效的方法。
请注意,这是一个类似于结构的目录,其中每个文件夹可以具有子文件夹,每个子文件夹可以具有子文件夹,依此类推。
请提出其他选择。
java android android-layout android-view android-recyclerview
有没有办法让文本显示在Android工作室的预览窗格中,而不是在手机上运行时显示在实际的应用程序中?
我目前使用该android:hint属性,这对于查看需要多少空间TextView或文本大小非常有用.
但问题是,如果没有分配文本TextView,则提示会显示在应用程序中.
有没有办法让文本只在android studio中显示,而不是在运行时?