簡體   English   中英

將字體添加到Intent以發送到另一個活動

[英]Add a font to an Intent to send to another activity

我有2個活動(實際上是4個活動,但目前只有2個活動),主要活動和字體更改活動。 主要活動使用intentstartActivityForResult將用戶鍵入的文本發送到字體更改活動中。 在字體更改活動中,用戶可以按預期更改文本的字體。 我要做的是在用戶更改字體后,將文本和新字體發送回主要活動。 但是我不確定該怎么做。 我正在考慮使用某種bundle但我被卡住了。 如果有人可以幫助我,將不勝感激。

這是我的(相關)主要活動代碼:

public class MainActivity extends AppCompatActivity
{
    RelativeLayout move_group;

    ImageView view;
    String backgroundImageName;
    SeekBar seekSize;
    TextView user_text;
    Button button;

    SeekBar tiltChange;

    String temp;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        user_text = (TextView) findViewById(R.id.user_text);

    static final int REQUEST_FONT = 4;
    public void FontChange(View view)
    {
        Intent fontIntent = new Intent(this, Main4Activity.class);
        fontIntent.putExtra("Text", temp);
        startActivityForResult(fontIntent, REQUEST_FONT);
    }

    //There's supposed to be an accompanying onActivityResult method as well
    //but i haven't figured that part out yet

}

這是我的(相關)字體活動代碼:

public class Main4Activity extends AppCompatActivity
{
    TextView user_font_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        user_font_text = (TextView) findViewById(R.id.user_font_text);
    }

    public void boldText(View view)
    {
        Typeface custom_font = getResources().getFont(R.font.avenir_next_bold);
        user_font_text.setTypeface(custom_font);
    }

    public void italicText(View view)
    {
        Typeface custom_font = getResources().getFont(R.font.avenir_next_italic);
        user_font_text.setTypeface(custom_font);
    }

    public void regularText(View view)
    {
        Typeface custom_font = getResources().getFont(R.font.avenir_next_regular);
        user_font_text.setTypeface(custom_font);
    }

    public void thinText(View view)
    {
        Typeface custom_font = getResources().getFont(R.font.avenir_next_thin);
        user_font_text.setTypeface(custom_font);
    }

    public void OK(View view)
    {
        //The intent and/or bundle would go here but I don't know what to do
    }
}
public void FontChange(View view)
    {
        temp = user_text.getText().toString();
        Intent fontIntent = new Intent(this, Main4Activity.class);
        fontIntent.putExtra("Text", temp);
        startActivityForResult(fontIntent, REQUEST_FONT);
    }

這會將您的字符串從textview提取到fontActivity。

現在在您的FontActivity中

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        Intent intent = getIntent();
        String text = intent.getStringExtra("temp");
        user_font_text = (TextView) findViewById(R.id.user_font_text);
        user_font_text.setText(text);
    }

   public void OK(View view)
    {
          Intent returnIntent = new Intent();
                returnIntent.putExtra("result", 
                    user_font_text.getText().toString());
                returnIntent.putExtra("font", 
                    ypur_font_type);
                 setResult(Activity.RESULT_OK, returnIntent);
    }

其余的設置字體樣式可以使用SpannableStringBuilder完成。 在這里您可以檢查SpannableStringBuilder 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM