Android에서 토스트를 표시하는 방법은 무엇입니까?
저는 위로 올릴 수 있는 슬라이더를 가지고 있고, 그러면 지도가 나타납니다.슬라이더를 위아래로 움직여 지도를 숨기거나 표시할 수 있습니다.지도가 앞에 있을 때, 저는 그 지도에서 터치 이벤트를 처리할 수 있습니다.만질 때마다AsyncTask
시동이 걸리면, 그것은 약간의 데이터를 다운로드하고 만든다.Toast
데이터를 표시합니다.터치 시 작업을 시작해도 슬라이더를 닫을 때까지 토스트가 표시되지 않습니다.슬라이더가 닫히고 지도가 더 이상 표시되지 않을 때Toast
나타납니다.
아이디어 있어요?
자, 작업을 시작합니다.
편집:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
그리고.onPostExecute
축배를 들다
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
뉴TestTask(this)
이것은 에 대한 참조입니다.MapOverlay
하지도 마MapActivity
그래서 이것이 문제였습니다.
프로그램에 토스트를 표시하려면 다음을 수행합니다.
Toast.makeText(getActivity(), (String)data.result,
Toast.LENGTH_LONG).show();
다른 예:
Toast.makeText(getActivity(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
지속 시간에 대해 두 개의 상수를 정의할 수 있습니다.
int Length_LONG 장시간 보기 또는 텍스트 알림을 표시합니다.
int Length_SHORT 짧은 시간 동안 보기 또는 텍스트 알림을 표시합니다.
토스트 사용자 지정
LayoutInflater myInflater = LayoutInflater.from(this);
View view = myInflater.inflate(R.layout.your_custom_layout, null);
Toast mytoast = new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();
다음을 사용하여 활동 확장baseadapter
이것을 사용했습니다.
Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
또는 활동을 사용하는 경우 또는mainactivity
Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();
구문
Toast.makeText(context, text, duration);
매개 변수 값
맥락
getApplicationContext()
응용 프로그램에서 실행 중인 모든 활동의 컨텍스트를 반환합니다.
getBaseContext()
응용프로그램 내의 다른 컨텍스트에서 컨텍스트에 액세스하려는 경우 액세스할 수 있습니다.
getContext()
컨텍스트 보기만 현재 실행 중인 활동을 반환합니다.
본문
text
"STRING"을 반환합니다. 문자열이 아닐 경우 캐스트 유형을 사용할 수 있습니다.
(string)num // type caste
지속
Toast.LENGTH_SHORT
토스트 지연 2000ms 사전 정의
Toast.LENGTH_LONG
토스트 지연 3500ms 사전 정의
milisecond
토스트 지연 사용자 정의 밀리초(예: 4000)
예제.1
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
예제.2
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
Android로 건배하기 위해,
import android.widget.Toast;
Toast.makeText(MainActivity.this, "YOUR MESSAGE", Toast.LENGTH_SHORT).show();
또는
Toast.makeText(MainActivity.this, "YOUR MESSAGE", Toast.LENGTH_LONG).show();
(LENGTH_SHORT 및 LENGTH_LONG은 부울 플래그 역할을 합니다. 즉, 토스트 타이머를 밀리초 단위로 전송할 수 없지만 두 옵션 중 하나를 사용해야 합니다.)
아래 항목을 사용자 지정할 수 있습니다.
LayoutInflater mInflater=LayoutInflater.from(this);
View view=mInflater.inflate(R.layout.your_layout_file,null);
Toast toast=new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
또는 일반적인 방법:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();
저는 토스트를 여러 개 먹어봤고 토스트가 오류를 일으키는 사람들을 위해 시도했습니다.
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
두 가지 방법이 있습니다.
기본 제공 토스트 메시지를 사용합니다.
//Toast shown for short period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show();
//Toast shown for long period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show();
또는 사용자 지정 레이아웃 파일을 제공하여 사용자 지정 파일을 만듭니다.
Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();
저는 여기서 우연히 답을 발견했고, 누군가가 활동 맥락이 필요하다고 생각하며 꼬치꼬치 캐묻는 것 같다는 사실에 끌렸습니다.그렇지 않습니다.그러나 기본 이벤트 또는 UI 스레드에서 토스트를 게시해야 합니다.따라서, 활동 맥락 밖에서 이 작업을 수행하는 것은 약간 까다롭습니다.다음은 시스템 서비스 내부에서 작동하거나 궁극적으로 다음으로부터 상속받는 잠재적인 클래스에서 작동하는 예입니다.Context
.
public class MyService extends AccessibilityService {
public void postToastMessage(final String message) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
});
}
}
로 의인스에액필없습다니요의 .Activity
이것이 효과가 있으려면.제발 이 경우를 암시하는 것을 그만두세요!한다면Activity
필요한 경우, 메소드 서명이 필요하지 않습니다.Context
.
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();
"app.getBaseContext()"를 사용하는 대신 사용할 수 있습니다.
"getApplicationContext()" 또는 "getContext()"를 사용할 수 있습니다.
코드가 활성화되어 있으면 "활성화.this"의 "this"를 사용해야 합니다.
, 은 " "getActivity()"로.
파편이라면
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
토스트를 표시하려면 다음 코드를 사용합니다.
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
심플 웨이
toast("Your Message")
OR
toast(R.string.some_message)
두가방법추됩니면다가하에 두 가지 .BaseActivity
새 는새로만을 합니다.BaseActivity
아직 사용하지 않는 경우.
public class BaseActivity extends AppCompatActivity {
public void toast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
public void toast(@StringRes int msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
}
여러분의 하기 위해 당모활확다장니합동을든그리의신고▁all▁and다▁extend▁yourities▁by▁activ니확장.BaseActivity
.
public class MainActivity extends BaseActivity
Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position
toast.setDuration(10000);//you can even use milliseconds to display toast
toast.show();**//showing the toast is important**
구문
Toast.makeText(context, text, duration);
getApplicationContext() 또는 getActivity() 또는 MainActivity.this(활동 이름이 MainActivity인 경우)를 사용할 수 있습니다.
Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();
또는
Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();
내부 조각(CreateView)
Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();
내부 클래스(작성 시)
Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();
가장 간단한 방법! (기본 활동에 표시하려면 첫 번째 인수를 다른 활동으로 대체)
Button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
}
}
이것은 저에게 효과가 있었습니다.
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
시작하는 방법
Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();
여기 또 다른 것이 있습니다.
refreshBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
}
});
에▁where디Toast
다음과 같습니다.
Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
&strings.xml
:
<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>
서비스에서 토스트 표시
public class ServiceA extends Service {
//....
public void showToast(final String message) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
}
});
}
//....
}
당신은 또한 넣을 수 있습니다.showToast
응용프로그램 클래스에서 메서드를 사용하고 어디서든 토스트를 참조하여 어디서든 토스트를 볼 수 있습니다.
: 활동중간건한배작를성면다수려다행니합음을하사단▁in▁if다수니행합.Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
1.TextView in Test:---
TextView tv = new TextView(this);
tv.setText("Hello!");
tv.setTextSize(30);
tv.setTextColor(Color.RED);
tv.setBackgroundColor(Color.YELLOW);
2. 이미지를 토스트로 표시:--
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.blonde);
Toast t = new Toast(this);
t.setView(iv);
t.setDuration(Toast.LENGTH_LONG);
t.show();
3. 레이아웃을 토스트로 표시:--
LayoutInflater li = getLayoutInflater();
View view = li.inflate(R.layout.my_toast_layout,null,false);
Toast t = new Toast(this);
t.setView(view);
t.setDuration(Toast.LENGTH_LONG);
t.show();
비기식으토로스작성다수다행니합음을면려하를트동▁if:다.private Activity activity;
private android.content.Context context;
this.activity = activity;
this.context = context;
Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();
코틀린 설탕을 사용한 확장 기능
fun Context.showToast(string: String){
Toast.makeText(
this, string,
Toast.LENGTH_SHORT
).show()
}
용도:
사람: 활동:showToast("toast)
조각: 서조에:requiredContext().showToast("toast)
언급URL : https://stackoverflow.com/questions/3500197/how-to-display-toast-in-android
'programing' 카테고리의 다른 글
관계에 대한 사용 권한이 거부되었습니다. (0) | 2023.06.02 |
---|---|
좋은 .NET 프로파일러는 무엇입니까? (0) | 2023.06.02 |
엑셀에 병합과 같은 기능이 있나요? (0) | 2023.06.02 |
루비에서 이진 파일을 문자열로 읽기 (0) | 2023.06.02 |
대상 "ResolveWebJobFiles"가 Azure 웹 사이트의 프로젝트에 없습니다. (0) | 2023.06.02 |