2013-03-12 2 views
3

MainActivity.java, activity_main.xml 파일이라는 Activity이 있습니다. 그러나 DirectionActivity이라는 또 다른 활동을 시작할 링크를 만드는 방법을 모르겠습니다. 아래는 내 코드 샘플입니다.TextView를 사용하여 활동에 대한 링크 만들기

strings.xml의

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="app_name">EEMA</string> 
    <string name="action_settings">Settings</string> 
    <string name="hello_world">The Emergency Evacuation Mobile App!</string> 
    <string name="directions">\n\nTo view directions click here!</string> 
    <string name="title_activity_direction">DirectionActivity</string> 
    <string name="title_activity_main">MainActivity</string> 
</resources> 

activity_main.xml의 텍스트 뷰

<TextView android:id="@+id/txtView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:textSize="12sp" 
    android:textColorLink="#FFFF00" 
    android:textStyle="bold" 
/> 

MainActivity.java

public class MainMenuActivity extends Activity { 
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 

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

     String str = "Please click here to view Directions"; 
     TextView txtView = (TextView) findViewById(R.id.txtView); 
     txtView.setText(str); 
     Linkify.addLinks(txtView, Linkify.ALL);  
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_menu, menu); 
     return true; 
    } 
} 

DirectionActivity.java

public class DirectionActivity extends Activity { 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = getIntent(); 
     String message = intent.getStringExtra(MainMenuActivity.EXTRA_MESSAGE); 

     // Create the text view  
     TextView textView = new TextView(this);  
     textView.setTextSize(40);  
     textView.setText(message); 

     // Set the text view as the activity layout  
     setContentView(textView);  
     setContentView(R.layout.activity_direction); 

     // Make sure we're running on Honeycomb or higher to use ActionBar APIs   
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {    
      // Show the Up button in the action bar.    
      getActionBar().setDisplayHomeAsUpEnabled(true);   
     }  
    } 
} 

DirectionActivity가 열리는 링크로 표시되는 길 찾기를 보려면 여기를 클릭하십시오.를 얻으려면 어떻게해야합니까?

답변

4

두 가지 작업을 수행하려고합니다. 먼저, TextView 클릭시 무언가를하고 싶습니다. 둘째, 새로운 Activity을 시작하려고합니다.

이 활동 클래스 ' onCreate 방법, 처음 일을 달성하기 위해, 당신이 원하는 뭔가 같은 :

final TextView txtView = this.findViewById(R.id.txtView); 
txtView.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     ... 
    } 
}); 

다음 두 번째 일을 달성하기 위해, 당신이 실행하려는 Activity 경우라고 DirectionActivity :

final TextView txtView = this.findViewById(R.id.txtView); 
txtView.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     MainMenuActivity.this.startActivity(new Intent(MainMenuActivity.this, DirectionActivity.class)); 
    } 
}); 
+0

가비지 수집을위한 청취자 처분에 대해 걱정할 필요가 있습니까? – yams

+0

그렇게해서는 안됩니다. 이 코드를 추가 할 때 – yarian

+0

내가 오류 메시지가 얻을 - 아차, 코드를 수정 – yams

관련 문제