2017-12-02 8 views
0

나는 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 
    } 
} 
+1

글꼴을 전달할 필요없이'R.font.some_font'에서 Integer를 전달하면됩니다! – Xenolion

답변

0
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); 
    } 

이이 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을 확인할 수 있습니다. 희망이 도움이됩니다.

+0

당신의 대답은 의심 스럽습니다. 당신은 그 코드를 테스트 했습니까 ?? – Xenolion