从类中调用新布局

时间:2016-06-09 02:14:00

标签: android android-layout android-studio

我想知道是否可以在课堂上使用setContentView?我打算在调用类后调用新的布局。所以基本上,一旦我检测到nfc标签,我就试图改变视图。

Main_Activity

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main__screen);
    readCard = new ReadCard(this);
    enableReaderMode();
}

public void enableReaderMode()
{
    Activity activity = this;
    NfcAdapter nfc = NfcAdapter.getDefaultAdapter(activity);
    if (nfc != null)
    {
        nfc.enableReaderMode(activity, readCard, READER_FLAGS, null);
    }

}

private Main_Screen mainScreen;
private Context context;
public String PINHolder = null;

IsoDep isoDep;
Activity Main_Screen = (Activity) context;
public ReadCard(Main_Screen mainScreen)
{
    this.mainScreen = mainScreen;
}
@Override
public void onTagDiscovered(Tag tag)
{


    isoDep = IsoDep.get(tag);

    if (isoDep != null)
    {
        beepSound.start();
        try
        {
            isoDep.connect();
            mainScreen.setContentView(R.layout.pin_login);
        } catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

你无法以你想要的方式做到这一点,因为只有Activity被“授权”才能修改其内容和子视图。您也无法从后台触摸UI线程。

有些方法可以达到你想要的效果,我会尝试列出一些:

有关如何与UI线程进行通信的更多信息(在本例中为Activity),请查看Android training guide