gpt4 book ai didi

android - 当自定义 View 位于选项卡中时自定义 View 中的按钮

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:18 24 4
gpt4 key购买 nike

问题

是否可以从与其他三个不同的 Activity 或 Java 文件运行一个选项卡,从而允许我将第二个 Activity 连接到运行第一个的服务器。

关于我的应用的一些信息

我拥有的是一个多选项卡式应用程序,具有几种不同的布局。其中之一是交互式图形布局。在这个选项卡上,大部分需要是我已经设置好的自定义 View ,但我需要在底部有一排小部件,如按钮、 slider 等。我现在正处于运行图形布局的地步将它设置为 list 中的主要 Activity (android:name=".Tab3Activity") 当我点击按钮时应用程序将运行并打印出文本如果我从选项卡运行它作为我需要它来运行应用程序,当我单击按钮时它会崩溃。这是我目前的代码

选项卡设置

    th.setup();
TabSpec specs = th.newTabSpec("tag0");
specs.setContent(R.id.connecttionTab);
specs.setIndicator("Connection Tab");
th.addTab(specs);
specs = th.newTabSpec("tag1");
specs.setContent(R.id.tab1);
specs.setIndicator("Zone Manager");
th.addTab(specs);
specs = th.newTabSpec("tag2");
specs.setContent(R.id.tab2);
specs.setIndicator("",res.getDrawable(R.drawable.ic_tab_vaccontrol));
th.addTab(specs);
//Intent intent = new Intent().setClass(this, Tab3Activity.class); tryed using this but
//with this tab goes ontop of all the other ones and still doesnt work.
TabSpec spec = th.newTabSpec("Tab3").setIndicator("Graphical Layout").setContent(R.id.tab3);
th.addTab(spec);

Tab3Activity

public class Tab3Activity extends Activity 
{
private Tab3 mTab3;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab3);
mTab3 = (Tab3) findViewById(R.id.tab3_display);
}

public void onAddZone(View view)
{
mTab3.addZone();
}
}

Tab3(查看类)

public class Tab3 extends View implements OnTouchListener
{
public Tab3(Context context, AttributeSet attrs)
{
super (context, attrs);
setFocusable(true);
setFocusableInTouchMode(true);
setOnTouchListener(this);
requestFocus();
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//drawings
invalidate();
}
@Override
public boolean onTouch(View v, MotionEvent event)
{
//onTouch
return true;
}
public void addZone()
{
//String w = "W~20~0~0~0~0~0";
Log.d("ZoneSize", "Zone set");
//MyApplication.preferences.edit().putString( "ZoneSize", w ).commit();
//MyApplication.preferences.edit().putBoolean("ZoneSizeReady", true).commit();
}
}

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/myLayout"
android:orientation="vertical"
android:layout_height="match_parent" >

<com.zone.manager.Tab3
android:id="@+id/tab3_display"
android:layout_width="fill_parent"
android:layout_height="620dp" />

<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent" >

<Button
android:id="@+id/addZone"
android:layout_width="wrap_content"
android:onClick="onAddZone"
android:layout_height="wrap_content"
android:text="Add Zone" />

<Button
android:id="@+id/helpZone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Help" />

<SeekBar
android:id="@+id/seekBar1"
android:paddingTop="9dp"
android:layout_width="179dp"
android:layout_height="wrap_content" />

</LinearLayout>
</LinearLayout>

感谢您给我的任何帮助!

最佳答案

虽然我们希望您发布崩溃日志,但我建议您不要使用旧的选项卡方法(当然,除非您的客户确实需要这些选项卡而强制您这样做)。自那个选项卡小部件以来,Android 的用户界面模式发生了重大变化。

实现选项卡的现代方法是使用 ActionBarFragments API ,自 Honeycomb 以来一直存在,但可用于早期的 android 版本作为支持库,您可以使用 android sdk 管理器下载。基于 fragment 的方法将为您省去很多麻烦。

至于您的主要问题,您不太清楚从不同的 Activity 中启动某些东西要完成什么,但是如果您需要从一个 Activity 中启动一个长时间运行的任务并将结果返回到另一个 Activity 中,您可以想继续阅读 Services (特别是,IntentService 很可能是您要查找的内容)

关于android - 当自定义 View 位于选项卡中时自定义 View 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com