我有问题。我想使用布局来设计这个ArcTimerActivity。
当我将setContentView(cv)
更改为setContentView(R.layout.arc_timer_activity)
时,它无法正常工作。 (我不是程序员,所以对我来说不容易)
public class ArcTimerActivity extends Activity implements Runnable, View.OnClickListener, View.OnLongClickListener {
private ArcTimerView cv = null;
private Thread t = null;
private boolean run_thread = false;
private int run_thread_fps = 50; // Max 1000
private IntervalSession is;
private final int MENU_PREFERENCES = 15;
//@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
is = new IntervalSession();
restorePreferences();
cv = new ArcTimerView(this, is);
cv.setOnClickListener(this);
cv.setOnLongClickListener(this);
restoreRunningState(getLastNonConfigurationInstance());
setContentView(cv);
}
....................
如果使用setContentView(R.layout.arc_timer_activity) - 没有错误,只有黑屏。 Maby我需要添加或更改smth以在布局中显示活动吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<View
android:layout_width="fill_parent"
android:layout_height="fill_parent"
></View>
</LinearLayout>
答案 0 :(得分:0)
首先给任何布局赋予一个特定的id,然后在你想要添加cv(或IntervalSession())的xml文件中查看。
现在setContentView(R.layout.arc_timer_activity);
现在,定义资源视图的对象,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<View
android:id="@+id/myView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
></View>
</LinearLayout>
现在在Jva文件中为该id提供资源
View myView = (View) findViewById(R.id.myView);
现在创建要添加的视图的对象。
cv = new ArcTimerView(this, is);
并将其添加到您的视图中。
myView.add(cv); // or myView.addView(cv);
invalidate();
这样,您可以动态地将任何视图添加到资源布局中。
随意发表评论。
<强>更新强>
我的项目演示中有一个我已按照您的要求实施。请参阅下面的代码段。 MyView是我添加的电话。专注于它。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(new MyView(this)); // Edited
statusString="testing Post For Application Development";
setContentView(R.layout.main);
display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
drawingLayout = (RelativeLayout)findViewById(R.id.drawingLayout);
System.out.println("The Layout is: "+drawingLayout);
myView = new MyView(this);
drawingLayout.addView(myView);
display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
// Setting mPaint
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(0xFFFF0000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(7);
在上面的代码中,MyView是我想要添加到布局中的类。请参考该代码,您将了解如何将MyView类对象添加到布局中。
希望此代码可以帮助您。