当前位置: 首页 > 知识库问答 >
问题:

如何从其他活动更改TextView的值?

成和悌
2023-03-14

在我试图开发的应用程序中,我有一个布局特色的_workshop_布局,带有带按钮的CardView。每个按钮显示相同的布局,但根据每张卡显示不同的数据。我尝试了下面的方法,但不断出现致命的异常

检查此处的按钮1(特色车间布局)

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- android:background="#E1F5FE">
A CardView that contains a TextView -->
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_gravity="center"
    android:layout_margin="8dp"
    android:padding="10dp"
    card_view:cardCornerRadius="4dp"
    card_view:cardElevation="4dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/titleTextView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button1"
            android:layout_alignParentTop="true"
            android:layout_alignStart="@+id/button1"
            android:paddingBottom="16dp"
            android:paddingTop="24dp"
            android:text="Android 2.0"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/contentTextView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/titleTextView1"
            android:layout_alignStart="@+id/titleTextView1"
            android:layout_centerVertical="true"
            android:paddingBottom="16dp"
            android:paddingTop="16dp"
            android:text="Venue: SJT 311 \n Time: 29/10/2015 5-7pm \n Note: Bring charged laptop"
            android:textSize="14sp" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="23dp"
            android:layout_marginStart="23dp"
            android:background="#0000"
            android:onClick="showRegister"
            android:tag="SITEAndroid 2.0"
            android:padding="8dp"
            android:text="Register"
            android:textColor="#FFA000" />


    </RelativeLayout>
</android.support.v7.widget.CardView>

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view1"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_gravity="center"
    android:layout_margin="8dp"
    android:padding="10dp"
    card_view:cardCornerRadius="4dp"
    card_view:cardElevation="4dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/titleTextView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button3"
            android:layout_alignParentTop="true"
            android:layout_alignStart="@+id/button3"
            android:paddingBottom="16dp"
            android:paddingTop="24dp"
            android:text="IEEE-SPS Core Committee Selections"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/contentTextView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/titleTextView2"
            android:layout_alignStart="@+id/titleTextView2"
            android:layout_centerVertical="true"
            android:paddingBottom="16dp"
            android:paddingTop="16dp"
            android:text="Venue: TT 724 \n Time: 30/10/2015 6-7.30pm"
            android:textSize="14sp" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="24dp"
            android:layout_marginStart="24dp"
            android:background="#0000"
            android:onClick="showRegister"
            android:padding="8dp"
            android:text="Register"
            android:textColor="#FFA000" />


    </RelativeLayout>
</android.support.v7.widget.CardView>

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view2"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_gravity="center"
    android:layout_margin="8dp"
    android:padding="10dp"
    card_view:cardCornerRadius="4dp"
    card_view:cardElevation="4dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textView12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button2"
            android:layout_alignParentTop="true"
            android:layout_alignStart="@+id/button2"
            android:paddingBottom="16dp"
            android:paddingTop="24dp"
            android:text="IQ VIT DEXTER"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView21"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button2"
            android:layout_alignStart="@+id/button2"
            android:layout_centerVertical="true"
            android:paddingBottom="16dp"
            android:paddingTop="16dp"
            android:text="Venue: MB210\n Time: 31/10/2015 5.30pm\nContact: 9484356876"
            android:textSize="14sp" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="32dp"
            android:layout_marginStart="32dp"
            android:background="#0000"
            android:onClick="showRegister"
            android:padding="8dp"
            android:text="Register"
            android:textColor="#FFA000" />


    </RelativeLayout>
</android.support.v7.widget.CardView>

主要活动。JAVA

public void showRegister(View view)
{   String site = "SITE";
    String taginfo =  view.getTag().toString();
    System.out.println(taginfo);
    //check tag content
    if(taginfo.contains(site)) {
        System.out.println("tag has keyword site");
        RegistrationForm.schoolName.setText(site);
    }

    startActivity(new Intent(MainActivity.this,
            RegistrationForm.class));

}

登记表。JAVA

public class RegistrationForm extends AppCompatActivity {

EditText rno;
EditText name;
TextView displayTemp;
MyDBHandler dbHandler;
public static TextView schoolName;
public static TextView workshopName;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.registration_form);
    rno = (EditText)findViewById(R.id.edit_rno);
    name =(EditText)findViewById(R.id.edit_name);
    schoolName = (TextView) findViewById(R.id.schoolName);
    workshopName = (TextView) findViewById(R.id.workshopName);
    displayTemp = (TextView)findViewById(R.id.textView3);
    dbHandler = new MyDBHandler(this,null,null,1);
    displayText();

}

我已在注册表格中声明TextViewpublic。java,我想在这里显示详细信息。当从MainActivity访问它以更改值时,我得到以下异常。

致命异常:主进程:com.example.intodarkness.vitworkshop,PID:9770java.lang.IllegalStateException:无法在android.view.执行活动的方法java.lang.reflect.点击(View.java:4025)在java.lang.reflect.Vethod.invoke点击(Vethod.java:372)在com.android.internal.os.查看$PerformCaller.run(Vnit.java:905)在com.android.internal.os.Hnit.main回调(Handler.java:739)在android.os.Handler.dispatch消息(Handler.java:95)在1.onLooper.loop(Looper.java:135)在android.view.Miew.perform(Miew.java:4785)在android.view.ZygoteInit$Method odAndArgsClick.run(ZygoteIiew.java:19884)在android.os.ZygoteIandler.handle(ZygoteInit. java: 700)引起的:java. lang.反射率。java. lang.反射率上的InvocationTargetException。java. lang.反射率上的方法。调用(本机方法)。android. view上的方法。调用(方法。java: 372)。视图1美元。onClick(视图

共有3个答案

宗政和韵
2023-03-14

解决了。我没有尝试从MainActivity访问所需字段,而是从MainActivity中的CardView访问了所需的详细信息,并在注册表中执行了其余操作,在注册表中,我可以访问注册表的文本视图。

我使用了这个系统。出来println()语句来查找执行顺序,我发现只有在setText语句之后才调用Activity,这就是为什么我得到了nullException错误。

宫弘亮
2023-03-14

如果您想更改Activity2text view的值,那么在从Activity1到Activity2时,只需在Intent.putExtra()中设置值并启动活动,并在Activity2onCreate()方法中,通过调用getIntent.getExtras(). getString('your_key');获取意图值并更改text view值。

索寒
2023-03-14

我想你的问题是:

if(taginfo.contains(site)) {
    System.out.println("tag has keyword site");
    RegistrationForm.schoolName.setText(site);
}

startActivity(new Intent(MainActivity.this,
        RegistrationForm.class));

我建议您使用Intent将参数从一个活动发送到另一个活动。putExtra()而不是静态变量。

在这里https://stackoverflow.com/a/3510771/2219237你可以找到一个例子如何做到这一点。

 类似资料:
  • 我有3个活动A、B和C。A导致B,B导致C。我希望能够在A和B之间来回移动,但我希望在C开始后完成A和B。我知道如何在通过意图启动C时关闭B,但在启动C时如何关闭A?

  • 所以我有两个活动,在第二个活动中有一个编辑文本和一个按钮。当你在编辑文本中输入一些数字时,当你按下按钮时,它应该会根据你输入的数字更改第一个活动中所有文本视图的字体大小。我以某种方式做了,但我的导师说不应该像我这样做。你能帮我换一种方法吗?可能比这更简单。我会发布代码。

  • 我想使用下面另一个活动简单代码示例中的活动上下文,有什么想法吗? 谢谢

  • 问题内容: 我想从其他活动中调用主要活动中的公共方法。我怎样才能做到这一点? 问题答案: 这取决于。 在这种情况下,如果您只想使用某些共享功能(例如执行一些计算的代码)。 我建议将此共享功能移至某些独立的类,然后从那里进行调用。 在这种情况下,如果您想调用MainActivity,则MainActivity使用MainActivity UI进行了某些操作,则您必须使用Intent(http://d

  • 问题内容: 有人知道如何从其他活动中关闭一个活动吗?例如:我有3个活动(活动A,B和C),并且可以从活动C中关闭活动A。我的活动结构是活动A->活动B->活动C如何从中关闭活动A活动C? 我曾尝试此代码: 但是该代码只能关闭活动B的活动A,而不能直接关闭活动C的活动A。 有谁知道直接从其他活动关闭活动?谢谢.. 问题答案:

  • 大家早上好。我从标题中知道它是一切都混淆了,所以我会试着解释得更好。我需要为一个医疗项目创建一个计算糖化血红蛋白的应用程序。我有3个编辑文本,我在其中输入医学测试的值。三者中的每一个都因另一个而改变。举个例子:如果我一个有42,另一个是5.99%。诸如此类。我试图让它们动态地变化:在我写作的过程中保持不变。我尝试使用OnCliclListener,但是我必须写完整的值。 我不知道我解释得好不好让你